--- /dev/null
+<?php
+
+namespace Application\Migrations;
+
+use Doctrine\DBAL\Migrations\SkipMigrationException;
+use Doctrine\DBAL\Schema\Schema;
+use Wallabag\CoreBundle\Doctrine\WallabagMigration;
+
+/**
+ * Remove baggy theme
+ */
+final class Version20200414120227 extends WallabagMigration
+{
+ public function up(Schema $schema) : void
+ {
+ $this->addSql('UPDATE ' . $this->getTable('config', true) . ' SET theme = "material" WHERE theme = "baggy";');
+ }
+
+ public function down(Schema $schema) : void
+ {
+ throw new SkipMigrationException('Not possible ... ');
+ }
+}
+++ /dev/null
-
-#article {
- width: 70%;
- margin-bottom: 3em;
- text-align: justify;
-
- .tags {
- margin-bottom: 1em;
- }
-
- i {
- font-style: normal;
- }
-
- h1 {
- text-align: left;
- }
-
- h2::after {
- content: none;
- }
-
- h2,
- h3,
- h4 {
- text-transform: none;
- }
-}
-
-blockquote {
- border: 1px solid #999;
- background-color: #fff;
- padding: 1em;
- margin: 0;
-}
-
-.topPosF {
- position: fixed;
- right: 20%;
- bottom: 2em;
- font-size: 1.5em;
-}
-
-#article_toolbar {
- margin-bottom: 1em;
-
- li {
- display: inline-block;
- margin: 3px auto;
- }
-
- a {
- background-color: #000;
- padding: 0.3em 0.5em 0.2em;
- color: #fff;
- text-decoration: none;
-
- &:hover,
- &:focus {
- background-color: #999;
- }
- }
-}
-
-#nav-btn-add-tag {
- cursor: pointer;
-}
-
-.shaarli::before {
- content: "*";
-}
-
-.return {
- text-decoration: none;
- margin-top: 1em;
- display: block;
-}
-
-.return::before {
- margin-right: 0.5em;
-}
-
-.notags {
- font-style: italic;
- color: #999;
-}
-
-.icon-feed {
- background-color: #000;
- color: #fff;
- padding: 0.2em 0.5em;
-
- &::before {
- position: relative;
- top: 2px;
- }
-}
-
-.list-tags {
- li {
- margin-bottom: 0.5em;
- }
-
- .icon-feed:hover,
- .icon-feed:focus {
- background-color: #fff;
- color: #000;
- text-decoration: none;
- }
-
- a {
- text-decoration: none;
-
- &:hover,
- &:focus {
- text-decoration: underline;
- }
- }
-}
-
-pre code {
- font-family: "Courier New", Courier, monospace;
-}
-
-#filters {
- position: fixed;
- width: 20%;
- height: 100%;
- top: 0;
- right: 0;
- background-color: #fff;
- padding: 30px 30px 15px 15px;
- border-left: 1px #333 solid;
- z-index: 12;
- min-width: 300px;
-
- form .filter-group {
- margin: 5px;
- }
-}
-
-#download-form {
- position: fixed;
- width: 10%;
- height: 100%;
- top: 0;
- right: 0;
- background-color: #fff;
- padding: 30px 30px 15px 15px;
- border-left: 1px #333 solid;
- z-index: 12;
- min-width: 200px;
-
- li {
- display: block;
- padding: 0.5em 2em 0.5em 1em;
- color: #fff;
- position: relative;
- text-transform: uppercase;
- text-decoration: none;
- font-weight: 400;
- font-family: PT Sans, sans-serif;
- transition: all 0.5s ease;
- }
-}
+++ /dev/null
-
-::selection {
- color: #fff;
- background-color: #000;
-}
-
-.desktopHide {
- display: none;
-}
-
-.logo {
- position: fixed;
- z-index: 20;
- top: 0.4em;
- left: 0.6em;
-}
-
-h2,
-h3,
-h4 {
- font-family: "PT Sans", sans-serif;
- text-transform: uppercase;
-}
-
-p,
-li,
-label {
- color: #666;
-}
-
-a {
- color: #000;
- font-weight: bold;
-
- &.nostyle {
- text-decoration: none;
- }
-
- &:hover,
- &:focus {
- text-decoration: none;
- }
-}
-
-form fieldset {
- border: 0;
- padding: 0;
- margin: 0;
-}
-
-form input[type="text"],
-form input[type="number"],
-select,
-form input[type="password"],
-form input[type="url"],
-form input[type="email"] {
- border: 1px solid #999;
- padding: 0.5em 1em;
- min-width: 12em;
- color: #666;
-}
-
-@media screen and (-webkit-min-device-pixel-ratio: 0) {
- select {
- -webkit-appearance: none;
- border-radius: 0;
- background: #fff url("../../_global/img/bg-select.png") no-repeat right center;
- }
-}
-
-.inline {
- .row {
- display: inline-block;
- margin-right: 0.5em;
- }
-
- label {
- min-width: 6em;
- }
-}
-
-fieldset label {
- display: inline-block;
- min-width: 12.5em;
- color: #666;
-}
-
-label {
- margin-right: 0.5em;
-}
-
-form .row {
- margin-bottom: 0.5em;
-}
-
-form button,
-input[type="submit"] {
- cursor: pointer;
- background-color: #000;
- color: #fff;
- padding: 0.5em 1em;
- display: inline-block;
- border: 1px solid #000;
-}
-
-form button:hover,
-form button:focus,
-input[type="submit"]:hover,
-input[type="submit"]:focus {
- background-color: #fff;
- color: #000;
- -webkit-transition: all 0.5s ease;
- -moz-transition: all 0.5s ease;
- -ms-transition: all 0.5s ease;
- -o-transition: all 0.5s ease;
- transition: all 0.5s ease;
-}
-
-#bookmarklet {
- cursor: move;
-}
-
-h2::after {
- content: "";
- height: 4px;
- width: 20%;
- background-color: #000;
- display: block;
-}
-
-.links {
- padding: 0;
- margin: 0;
-
- li {
- list-style: none;
- margin: 0;
- padding: 0;
- }
-}
-
-#links {
- position: fixed;
- top: 0;
- width: 10em;
- left: 0;
- text-align: right;
- background-color: #333;
- padding-top: 9.5em;
- height: 100%;
- box-shadow: inset -4px 0 20px rgba(0, 0, 0, 0.6);
- z-index: 15;
-
- > li > a {
- display: block;
- padding: 0.5em 2em 0.5em 1em;
- color: #fff;
- position: relative;
- text-transform: uppercase;
- text-decoration: none;
- font-weight: normal;
- font-family: "PT Sans", sans-serif;
- transition: all 0.5s ease;
-
- &:hover,
- &:focus {
- background-color: #999;
- color: #000;
- }
- }
-
- .current::after {
- content: "";
- width: 0;
- height: 0;
- position: absolute;
- border: 10px solid transparent;
- border-right-color: #eee;
- right: 0;
- top: 50%;
- margin-top: -10px;
- }
-
- li:last-child {
- position: fixed;
- bottom: 1em;
- width: 10em;
-
- a::before {
- font-size: 1.2em;
- position: relative;
- top: 2px;
- }
- }
-}
-
-#main {
- margin-left: 12em;
- position: relative;
- z-index: 10;
- padding-right: 5%;
- padding-bottom: 1em;
-}
-
-#sort {
- padding: 0;
- list-style-type: none;
- opacity: 0.5;
- display: inline-block;
-
- li {
- display: inline;
- font-size: 0.9em;
-
- & + li {
- margin-left: 10px;
- }
- }
-
- a {
- padding: 2px 2px 0;
- vertical-align: middle;
- }
-
- img {
- vertical-align: baseline;
-
- :hover {
- cursor: pointer;
- }
- }
-}
-
-#display-mode {
- float: right;
- margin-top: 10px;
- margin-bottom: 10px;
- opacity: 0.5;
-}
-
-#listmode {
- width: 16px;
- display: inline-block;
- text-decoration: none;
-
- &.tablemode {
- background: url("../../_global/img/table.png") no-repeat bottom;
- }
-
- .listmode {
- background: url("../../_global/img/list.png") no-repeat bottom;
- }
-}
-
-#warning_message {
- position: fixed;
- background-color: #ff6347;
- z-index: 1000;
- bottom: 0;
- left: 0;
- width: 100%;
- color: #000;
-}
+++ /dev/null
-/* Style */
-@import 'guide';
-@import 'layout';
-@import 'article';
-@import 'pictos';
-@import 'login';
-@import 'save';
-@import 'messages';
-
-/* Tools */
-@import 'media_queries';
-@import 'print';
-@import 'ratatouille';
+++ /dev/null
-#content {
- margin-top: 2em;
- min-height: 30em;
-}
-
-footer {
- text-align: right;
- position: relative;
- bottom: 0;
- right: 5em;
- color: #999;
- font-size: 0.8em;
- font-style: italic;
- z-index: 20;
-
- a {
- color: #999;
- font-weight: normal;
- }
-}
-
-.list-entries {
- letter-spacing: -5px;
-}
-
-.listmode.entry {
- width: 100%;
- height: inherit;
-}
-
-.card-entry-tags {
- max-height: 2em;
- overflow-y: hidden;
- padding: 0;
- margin: 0;
-}
-
-.card-entry-tags li,
-.card-entry-tags span {
- display: inline-block;
- margin: 0 5px;
- padding: 5px 12px;
- background-color: rgba(0, 0, 0, 0.6);
- border-radius: 3px;
- max-height: 2em;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-.card-entry-tags a,
-.card-entry-labels a {
- text-decoration: none;
- font-weight: normal;
- color: #fff;
-}
-
-.nav-panel-add-tag {
- margin-top: 10px;
-}
-
-.list-entries + .results {
- margin-bottom: 2em;
-}
-
-.reading-time,
-.created-at {
- color: #999;
- font-style: italic;
- font-weight: normal;
- font-size: 0.9em;
-}
-
-.estimatedTime small {
- position: relative;
- top: -1px;
-}
-
-.entry {
- background-color: #fff;
- letter-spacing: normal;
- box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
- display: inline-block;
- width: 32%;
- margin-bottom: 1.5em;
- vertical-align: top;
- margin-right: 1%;
- position: relative;
- overflow: hidden;
- padding: 1.5em 0 3em;
- height: 440px;
-
- img.preview {
- width: 100%;
- object-fit: cover;
- height: 100%;
- }
-
- &::before {
- content: "";
- width: 0;
- height: 0;
- border: 10px solid transparent;
- border-bottom-color: #000;
- position: absolute;
- bottom: 0.7em;
- z-index: 10;
- right: 1.5em;
- transition: all 0.5s ease;
- }
-
- &::after {
- content: "";
- position: absolute;
- height: 7px;
- width: 100%;
- bottom: 0;
- left: 0;
- background-color: #000;
- transition: all 0.5s ease;
- }
-
- &:hover {
- box-shadow: 0 3px 10px rgba(0, 0, 0, 1);
-
- &::after {
- height: 40px;
- }
-
- &::before {
- bottom: 2.3em;
- }
-
- h2 a {
- color: #666;
- }
-
- .tools {
- bottom: 0;
- }
- }
-
- h2 {
- text-transform: none;
- margin-bottom: 0;
- line-height: 1.2;
- margin-left: 5px;
- }
-
- &::after {
- content: none;
- }
-
- a {
- display: block;
- text-decoration: none;
- color: #000;
- word-wrap: break-word;
- transition: all 0.5s ease;
- }
-
- p {
- color: #666;
- font-size: 0.9em;
- line-height: 1.7;
- margin: 5px 5px auto;
- }
-
- h2 a::first-letter {
- text-transform: uppercase;
- }
-
- .tools {
- position: absolute;
- bottom: -40px;
- left: 0;
- background: #000;
- width: 100%;
- z-index: 10;
- padding-right: 0.5em;
- text-align: right;
- transition: all 0.5s ease;
-
- a {
- color: #666;
- text-decoration: none;
- display: block;
- padding: 0.4em;
-
- &:hover {
- color: #fff;
- }
- }
-
- li {
- display: inline-block;
- margin-top: 10px;
- }
-
- li:first-child {
- float: left;
- font-size: 0.9em;
- max-width: calc(100% - 40px * 4);
- text-overflow: ellipsis;
- overflow: hidden;
- white-space: nowrap;
- max-height: 2em;
- margin-left: 10px;
- }
- }
-
- .card-entry-labels {
- position: absolute;
- top: 100px;
- left: -1em;
- z-index: 90;
- max-width: 50%;
- padding-left: 0;
-
- li {
- margin: 10px 10px 10px auto;
- padding: 5px 12px 5px 25px;
- background-color: rgba(0, 0, 0, 0.6);
- border-radius: 0 3px 3px 0;
- color: #fff;
- cursor: default;
- max-height: 2em;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-
- a {
- color: #fff;
- }
- }
- }
-}
-
-.entry:nth-child(3n+1) {
- margin-left: 0;
-}
-
-.results {
- letter-spacing: -5px;
- padding: 0 0 0.5em;
-
- > * {
- display: inline-block;
- vertical-align: top;
- letter-spacing: normal;
- width: 50%;
- text-align: right;
- }
-}
-
-div.pagination ul {
- text-align: right;
-}
-
-.nb-results {
- text-align: left;
- font-style: italic;
- color: #999;
- display: inline-flex;
-}
-
-div.pagination ul {
- a {
- color: #999;
- text-decoration: none;
-
- &:hover,
- &:focus {
- text-decoration: underline;
- }
- }
-
- > * {
- display: inline-block;
- margin-left: 0.5em;
- }
-
- .prev.disabled,
- .next.disabled {
- display: none;
- }
-
- .current {
- height: 25px;
- padding: 4px 8px;
- border: 1px solid #d5d5d5;
- text-decoration: none;
- font-weight: bold;
- color: #000;
- background-color: #ccc;
- }
-}
-
-.card-tag-form {
- display: inline-block;
-}
-
-.card-tag-form input[type="text"] {
- min-width: 20em;
-}
-
-.hide,
-.hidden {
- display: none;
-}
+++ /dev/null
-.login {
- background-color: #333;
-
- #main {
- padding: 0;
- margin: 0;
- }
-
- form {
- background-color: #fff;
- padding: 1.5em;
- box-shadow: 0 1px 8px rgba(0, 0, 0, 0.9);
- width: 20em;
- position: absolute;
- top: 8em;
- left: 50%;
- margin-left: -10em;
- }
-
- .logo {
- position: absolute;
- top: 2em;
- left: 50%;
- margin-left: -55px;
- }
-}
+++ /dev/null
-/* ==========================================================================
- Sommaire
-
- 1 = Style Guide
- 2 = Layout
- 3 = Pictos
- 4 = Messages
- 5 = Article
- 6 = Media queries
-
- ========================================================================== */
-
-html {
- min-height: 100%;
-}
-
-body {
- background-color: #eee;
-}
-
-.login {
- background-color: #333;
-}
-
-.login #main {
- padding: 0;
- margin: 0;
-}
-
-.login form {
- background-color: #fff;
- padding: 1.5em;
- box-shadow: 0 1px 8px rgba(0, 0, 0, 0.9);
- width: 20em;
- position: absolute;
- top: 8em;
- left: 50%;
- margin-left: -10em;
-}
-
-.login .logo {
- position: absolute;
- top: 2em;
- left: 50%;
- margin-left: -55px;
-}
-
-/* ==========================================================================
- 1 = Style Guide
- ========================================================================== */
-
-::selection {
- color: #fff;
- background-color: #000;
-}
-
-.desktopHide {
- display: none;
-}
-
-.logo {
- position: fixed;
- z-index: 20;
- top: 0.4em;
- left: 0.6em;
-}
-
-h2,
-h3,
-h4 {
- font-family: "PT Sans", sans-serif;
- text-transform: uppercase;
-}
-
-p,
-li,
-label {
- color: #666;
-}
-
-a {
- color: #000;
- font-weight: bold;
-}
-
-a.nostyle {
- text-decoration: none;
-}
-
-a:hover,
-a:focus {
- text-decoration: none;
-}
-
-form fieldset {
- border: 0;
- padding: 0;
- margin: 0;
-}
-
-form input[type="text"],
-form input[type="number"],
-select,
-form input[type="password"],
-form input[type="url"],
-form input[type="email"] {
- border: 1px solid #999;
- padding: 0.5em 1em;
- min-width: 12em;
- color: #666;
-}
-
-@media screen and (-webkit-min-device-pixel-ratio: 0) {
- select {
- -webkit-appearance: none;
- border-radius: 0;
- background: #fff url("../../_global/img/bg-select.png") no-repeat right center;
- }
-}
-
-.inline .row {
- display: inline-block;
- margin-right: 0.5em;
-}
-
-.inline label {
- min-width: 6em;
-}
-
-fieldset label {
- display: inline-block;
- min-width: 12.5em;
- color: #666;
-}
-
-label {
- margin-right: 0.5em;
-}
-
-form .row {
- margin-bottom: 0.5em;
-}
-
-form button,
-input[type="submit"] {
- cursor: pointer;
- background-color: #000;
- color: #fff;
- padding: 0.5em 1em;
- display: inline-block;
- border: 1px solid #000;
-}
-
-form button:hover,
-form button:focus,
-input[type="submit"]:hover,
-input[type="submit"]:focus {
- background-color: #fff;
- color: #000;
- -webkit-transition: all 0.5s ease;
- -moz-transition: all 0.5s ease;
- -ms-transition: all 0.5s ease;
- -o-transition: all 0.5s ease;
- transition: all 0.5s ease;
-}
-
-#bookmarklet {
- cursor: move;
-}
-
-h2::after {
- content: "";
- height: 4px;
- width: 70px;
- background-color: #000;
- display: block;
-}
-
-.links {
- padding: 0;
- margin: 0;
-}
-
-.links li {
- list-style: none;
- margin: 0;
- padding: 0;
-}
-
-#links {
- position: fixed;
- top: 0;
- width: 10em;
- left: 0;
- text-align: right;
- background-color: #333;
- padding-top: 9.5em;
- height: 100%;
- box-shadow: inset -4px 0 20px rgba(0, 0, 0, 0.6);
- z-index: 15;
-}
-
-#main {
- margin-left: 12em;
- position: relative;
- z-index: 10;
- padding-right: 5%;
- padding-bottom: 1em;
-}
-
-#links > li > a {
- display: block;
- padding: 0.5em 2em 0.5em 1em;
- color: #fff;
- position: relative;
- text-transform: uppercase;
- text-decoration: none;
- font-weight: normal;
- font-family: "PT Sans", sans-serif;
- -webkit-transition: all 0.5s ease;
- -moz-transition: all 0.5s ease;
- -ms-transition: all 0.5s ease;
- -o-transition: all 0.5s ease;
- transition: all 0.5s ease;
-}
-
-#links > li > a:hover,
-#links > li > a:focus {
- background-color: #999;
- color: #000;
-}
-
-#links .current::after {
- content: "";
- width: 0;
- height: 0;
- position: absolute;
- border-style: solid;
- border-width: 10px;
- border-color: transparent #eee transparent transparent;
- right: 0;
- top: 50%;
- margin-top: -10px;
-}
-
-#links li:last-child {
- position: fixed;
- bottom: 1em;
- width: 10em;
-}
-
-#links li:last-child a::before {
- font-size: 1.2em;
- position: relative;
- top: 2px;
-}
-
-#sort {
- padding: 0;
- list-style-type: none;
- opacity: 0.5;
- display: inline-block;
-}
-
-#sort li {
- display: inline;
- font-size: 0.9em;
-}
-
-#sort li + li {
- margin-left: 10px;
-}
-
-#sort a {
- padding: 2px 2px 0;
- vertical-align: middle;
-}
-
-#sort img {
- vertical-align: baseline;
-}
-
-#sort img:hover {
- cursor: pointer;
-}
-
-#display-mode {
- float: right;
- margin-top: 10px;
- margin-bottom: 10px;
- opacity: 0.5;
-}
-
-#listmode {
- width: 16px;
- display: inline-block;
- text-decoration: none;
-}
-
-#listmode.tablemode {
- background-image: url("../../_global/img/table.png");
- background-repeat: no-repeat;
- background-position: bottom;
-}
-
-#listmode.listmode {
- background-image: url("../../_global/img/list.png");
- background-repeat: no-repeat;
- background-position: bottom;
-}
-
-#warning_message {
- position: fixed;
- background-color: #ff6347;
- z-index: 1000;
- bottom: 0;
- left: 0;
- width: 100%;
- color: #000;
-}
-
-/* ==========================================================================
- 2 = Layout
- ========================================================================== */
-
-#content {
- margin-top: 2em;
- min-height: 30em;
-}
-
-footer {
- text-align: right;
- position: relative;
- bottom: 0;
- right: 5em;
- color: #999;
- font-size: 0.8em;
- font-style: italic;
- z-index: 20;
-}
-
-footer a {
- color: #999;
- font-weight: normal;
-}
-
-.list-entries {
- letter-spacing: -5px;
-}
-
-.listmode.entry {
- width: 100%;
- height: inherit;
-}
-
-.card-entry-labels {
- position: absolute;
- top: 100px;
- left: -1em;
- z-index: 90;
- max-width: 50%;
- padding-left: 0;
-}
-
-.card-entry-labels li {
- margin: 10px 10px 10px auto;
- padding: 5px 12px 5px 25px;
- background-color: rgba(0, 0, 0, 0.6);
- border-radius: 0 3px 3px 0;
- color: #fff;
- cursor: default;
- max-height: 2em;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-
-.card-entry-tags {
- max-height: 2em;
- overflow-y: hidden;
- padding: 0;
- margin: 0;
-}
-
-.card-entry-tags li,
-.card-entry-tags span {
- display: inline-block;
- margin: 0 5px;
- padding: 5px 12px;
- background-color: rgba(0, 0, 0, 0.6);
- border-radius: 3px;
- max-height: 2em;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-.card-entry-tags a,
-.card-entry-labels a {
- text-decoration: none;
- font-weight: normal;
- color: #fff;
-}
-
-.nav-panel-add-tag {
- margin-top: 10px;
-}
-
-.list-entries + .results {
- margin-bottom: 2em;
-}
-
-.reading-time,
-.created-at {
- color: #999;
- font-style: italic;
- font-weight: normal;
- font-size: 0.9em;
-}
-
-.estimatedTime small {
- position: relative;
- top: -1px;
-}
-
-.entry {
- background-color: #fff;
- letter-spacing: normal;
- box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
- display: inline-block;
- width: 32%;
- margin-bottom: 1.5em;
- vertical-align: top;
- margin-right: 1%;
- position: relative;
- overflow: hidden;
- padding: 1.5em 1.5em 3em;
- height: 440px;
-}
-
-.entry::before {
- content: "";
- width: 0;
- height: 0;
- border-style: solid;
- border-color: transparent transparent #000;
- border-width: 10px;
- position: absolute;
- bottom: 0.3em;
- z-index: 10;
- right: 1.5em;
- -webkit-transition: all 0.5s ease;
- -moz-transition: all 0.5s ease;
- -ms-transition: all 0.5s ease;
- -o-transition: all 0.5s ease;
- transition: all 0.5s ease;
-}
-
-.entry::after {
- content: "";
- position: absolute;
- height: 7px;
- width: 100%;
- bottom: 0;
- left: 0;
- background-color: #000;
- -webkit-transition: all 0.5s ease;
- -moz-transition: all 0.5s ease;
- -ms-transition: all 0.5s ease;
- -o-transition: all 0.5s ease;
- transition: all 0.5s ease;
-}
-
-.entry:hover {
- box-shadow: 0 3px 10px rgba(0, 0, 0, 1);
-}
-
-.entry:hover::after {
- height: 40px;
-}
-
-.entry:hover::before {
- bottom: 2.4em;
-}
-
-.entry:hover h2 a {
- color: #666;
-}
-
-.entry h2 {
- text-transform: none;
- margin-bottom: 0;
- line-height: 1.2;
-}
-
-.entry h2::after {
- content: none;
-}
-
-.entry h2 a {
- display: block;
- text-decoration: none;
- color: #000;
- word-wrap: break-word;
- -webkit-transition: all 0.5s ease;
- -moz-transition: all 0.5s ease;
- -ms-transition: all 0.5s ease;
- -o-transition: all 0.5s ease;
- transition: all 0.5s ease;
-}
-
-img.preview {
- max-width: calc(100% + 3em);
- left: -1.5em;
- position: relative;
-}
-
-.entry p {
- color: #666;
- font-size: 0.9em;
- line-height: 1.7;
- margin-top: 5px;
-}
-
-.entry h2 a::first-letter {
- text-transform: uppercase;
-}
-
-.entry:hover .tools {
- bottom: 0;
-}
-
-.entry .tools {
- position: absolute;
- bottom: -50px;
- left: 0;
- width: 100%;
- z-index: 10;
- padding-right: 0.5em;
- text-align: right;
- -webkit-transition: all 0.5s ease;
- -moz-transition: all 0.5s ease;
- -ms-transition: all 0.5s ease;
- -o-transition: all 0.5s ease;
- transition: all 0.5s ease;
-}
-
-.entry .tools a {
- color: #666;
- text-decoration: none;
- display: block;
- padding: 0.4em;
-}
-
-.entry .tools a:hover {
- color: #fff;
-}
-
-.entry .tools li {
- display: inline-block;
-}
-
-.entry:nth-child(3n+1) {
- margin-left: 0;
-}
-
-.results {
- letter-spacing: -5px;
- padding: 0 0 0.5em;
-}
-
-.results > * {
- display: inline-block;
- vertical-align: top;
- letter-spacing: normal;
- width: 50%;
- text-align: right;
-}
-
-div.pagination ul {
- text-align: right;
-}
-
-.nb-results {
- text-align: left;
- font-style: italic;
- color: #999;
- display: inline-flex;
-}
-
-div.pagination ul > * {
- display: inline-block;
- margin-left: 0.5em;
-}
-
-div.pagination ul a {
- color: #999;
- text-decoration: none;
-}
-
-div.pagination ul a:hover,
-div.pagination ul a:focus {
- text-decoration: underline;
-}
-
-div.pagination ul .prev.disabled,
-div.pagination ul .next.disabled {
- display: none;
-}
-
-div.pagination ul .current {
- height: 25px;
- padding: 4px 8px;
- border: 1px solid #d5d5d5;
- text-decoration: none;
- font-weight: bold;
- color: #000;
- background-color: #ccc;
-}
-
-.hide {
- display: none;
-}
-
-/* ==========================================================================
- 2.1 = "save a link" related styles
- ========================================================================== */
-
-.popup-form {
- background: rgba(0, 0, 0, 0.5);
- position: absolute;
- top: 0;
- left: 10em;
- z-index: 20;
- height: 100%;
- width: 100%;
- margin: 0;
- margin-top: -30% !important;
- padding: 2em;
- display: none;
- border-left: 1px #eee solid;
-}
-
-.popup-form form {
- background-color: #fff;
- position: absolute;
- top: 0;
- left: 0;
- z-index: 20;
- border: 10px solid #000;
- width: 400px;
- height: 200px;
- padding: 2em;
-}
-
-#bagit-form-form .addurl {
- margin-left: 0;
-}
-
-.closeMessage,
-.close-button {
- background-color: #000;
- color: #fff;
- font-size: 1.2em;
- line-height: 1.6;
- width: 1.6em;
- height: 1.6em;
- text-align: center;
- text-decoration: none;
-}
-
-.closeMessage:hover,
-.closeMessage:focus,
-.close-button:hover,
-.close-button:focus {
- background-color: #999;
- color: #000;
-}
-
-.close-button--popup {
- display: inline-block;
- position: absolute;
- top: 0;
- right: 0;
- font-size: 1.4em;
-}
-
-.active-current {
- background-color: #999;
-}
-
-.active-current::after {
- content: "";
- width: 0;
- height: 0;
- position: absolute;
- border-style: solid;
- border-width: 10px;
- border-color: transparent #eee transparent transparent;
- right: 0;
- top: 50%;
- margin-top: -10px;
-}
-
-.opacity03 {
- opacity: 0.3;
-}
-
-.add-to-wallabag-link-after {
- background-color: #000;
- color: #fff;
- padding: 0 3px 2px;
-}
-
-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: 0.3s;
- transition-timing-function: ease-in;
-}
-
-a.add-to-wallabag-link-after::after {
- content: "w";
-}
-
-#add-link-result {
- font-weight: bold;
- font-size: 0.9em;
-}
-
-.btn-clickable {
- cursor: pointer;
-}
-
-/* ==========================================================================
- 3 = Pictos
- ========================================================================== */
-
-@font-face {
- font-family: icomoon;
- src: url("../fonts/IcoMoon-Free.ttf");
- font-weight: normal;
- font-style: normal;
-}
-
-@font-face {
- font-family: 'Material Icons';
- font-style: normal;
- font-weight: 400;
- src: url(../fonts/MaterialIcons-Regular.eot);
-
- /* For IE6-8 */
- src: local("Material Icons"), local("MaterialIcons-Regular"), url(../fonts/MaterialIcons-Regular.woff2) format("woff2"), url(../fonts/MaterialIcons-Regular.woff) format("woff"), url(../fonts/MaterialIcons-Regular.ttf) format("truetype");
-}
-
-.material-icons {
- font-family: 'Material Icons';
- font-weight: normal;
- font-style: normal;
- font-size: 1em; /* Preferred icon size */
- width: 1em;
- height: 1em;
- display: inline-block;
- line-height: 1;
- text-transform: none;
- letter-spacing: normal;
- word-wrap: normal;
- white-space: nowrap;
- direction: ltr;
-
- /* Support for all WebKit browsers. */
- -webkit-font-smoothing: antialiased;
-
- /* Support for Safari and Chrome. */
- text-rendering: optimizeLegibility;
-
- /* Support for Firefox. */
- -moz-osx-font-smoothing: grayscale;
-
- /* Support for IE. */
- font-feature-settings: 'liga';
-}
-
-.material-icons.md-18 { font-size: 18px; }
-.material-icons.md-24 { font-size: 24px; }
-.material-icons.md-36 { font-size: 36px; }
-.material-icons.md-48 { font-size: 48px; }
-
-.icon span,
-.icon-image span {
- position: absolute;
- top: -9999px;
-}
-
-[class^="icon-"]::before,
-[class*=" icon-"]::before {
- font-family: icomoon;
- speak: none;
- font-style: normal;
- font-weight: normal;
- font-variant: normal;
- text-transform: none;
- line-height: 1;
-
- /* Enable Ligatures ================ */
- letter-spacing: 0;
- -webkit-font-feature-settings: "liga";
- -moz-font-feature-settings: "liga=1";
- -moz-font-feature-settings: "liga";
- -ms-font-feature-settings: "liga" 1;
- -o-font-feature-settings: "liga";
- font-feature-settings: "liga";
-
- /* Better Font Rendering =========== */
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-
-.icon-flattr::before {
- content: "\ead4";
-}
-
-.icon-mail::before {
- content: "\ea86";
-}
-
-.icon-up-open::before {
- content: "\e80b";
-}
-
-.icon-star::before {
- content: "\e9d9";
-}
-
-.icon-check::before {
- content: "\ea10";
-}
-
-.icon-link::before {
- content: "\e9cb";
-}
-
-.icon-reply::before {
- content: "\e806";
-}
-
-.icon-menu::before {
- content: "\e9bd";
-}
-
-.icon-clock::before {
- content: "\e803";
-}
-
-.icon-twitter::before {
- content: "\ea96";
-}
-
-.icon-down-open::before {
- content: "\e809";
-}
-
-.icon-trash::before {
- content: "\e9ac";
-}
-
-.icon-delete::before {
- content: "\ea0d";
-}
-
-.icon-power::before {
- content: "\ea14";
-}
-
-.icon-arrow-up-thick::before {
- content: "\ea3a";
-}
-
-.icon-rss::before {
- content: "\e808";
-}
-
-.icon-print::before {
- content: "\e954";
-}
-
-.icon-reload::before {
- content: "\ea2e";
-}
-
-.icon-price-tags::before {
- content: "\e936";
-}
-
-.icon-eye::before {
- content: "\e9ce";
-}
-
-.icon-no-eye::before {
- content: "\e9d1";
-}
-
-.icon-calendar::before {
- content: "\e953";
-}
-
-.icon-pencil2::before {
- content: "\e906";
-}
-
-.icon-users::before {
- content: "\e972";
-}
-
-.icon-time::before {
- content: "\e952";
-}
-
-/* .icon-image class, for image-based icons
- ========================================================================== */
-
-.icon-image {
- background-size: 16px 16px;
- background-repeat: no-repeat;
- background-position: center;
- padding-right: 1em !important;
- padding-left: 1em !important;
-}
-
-/* Carrot (http://carrot.org) */
-.icon-image--carrot {
- background-image: url("../../_global/img/icons/carrot-icon--white.png");
-}
-
-/* Diaspora */
-.icon-image--diaspora {
- background-image: url("../../_global/img/icons/diaspora-icon--black.png");
-}
-
-/* Unmark.it */
-.icon-image--unmark {
- background-image: url("../../_global/img/icons/unmark-icon--black.png");
-}
-
-/* shaarli */
-.icon-image--shaarli {
- background-image: url("../../_global/img/icons/shaarli.png");
-}
-
-/* scuttle */
-.icon-image--scuttle {
- background-image: url("../../_global/img/icons/scuttle.png");
-}
-
-/* ==========================================================================
- Icon selected
- ========================================================================== */
-
-.icon-star.fav::before {
- color: #fff;
-}
-
-.icon-check.archive::before {
- color: #fff;
-}
-
-/* ==========================================================================
- 4 = Messages
- ========================================================================== */
-
-.messages {
- text-align: left;
- margin-top: 1em;
-}
-
-.messages > * {
- display: inline-block;
-}
-
-.warning {
- font-weight: bold;
- display: block;
- width: 100%;
-}
-
-.more-info {
- font-size: 0.85em;
- line-height: 1.5;
- color: #aaa;
-}
-
-.more-info a {
- color: #aaa;
-}
-
-/* ==========================================================================
- 5 = Article
- ========================================================================== */
-
-#article {
- width: 70%;
- margin-bottom: 3em;
- text-align: justify;
-}
-
-#article .tags {
- margin-bottom: 1em;
-}
-
-#article i {
- font-style: normal;
-}
-
-blockquote {
- border: 1px solid #999;
- background-color: #fff;
- padding: 1em;
- margin: 0;
-}
-
-#article h1 {
- text-align: left;
-}
-
-#article h2,
-#article h3,
-#article h4 {
- text-transform: none;
-}
-
-#article h2::after {
- content: none;
-}
-
-.topPosF {
- position: fixed;
- right: 20%;
- bottom: 2em;
- font-size: 1.5em;
-}
-
-#article_toolbar {
- margin-bottom: 1em;
-}
-
-#article_toolbar li {
- display: inline-block;
- margin: 3px auto;
-}
-
-#article_toolbar a {
- background-color: #000;
- padding: 0.3em 0.5em 0.2em;
- color: #fff;
- text-decoration: none;
-}
-
-#article_toolbar a:hover,
-#article_toolbar a:focus {
- background-color: #999;
-}
-
-#nav-btn-add-tag {
- cursor: pointer;
-}
-
-.shaarli::before {
- content: "*";
-}
-
-.scuttle::before {
- content: "*";
-}
-
-.return {
- text-decoration: none;
- margin-top: 1em;
- display: block;
-}
-
-.return::before {
- margin-right: 0.5em;
-}
-
-.notags {
- font-style: italic;
- color: #999;
-}
-
-.icon-rss {
- background-color: #000;
- color: #fff;
- padding: 0.2em 0.5em;
-}
-
-.icon-rss::before {
- position: relative;
- top: 2px;
-}
-
-.list-tags li {
- margin-bottom: 0.5em;
-}
-
-.list-tags .icon-rss:hover,
-.list-tags .icon-rss:focus {
- background-color: #fff;
- color: #000;
- text-decoration: none;
-}
-
-.list-tags a {
- text-decoration: none;
-}
-
-.list-tags a:hover,
-.list-tags a:focus {
- text-decoration: underline;
-}
-
-pre code {
- font-family: "Courier New", Courier, monospace;
-}
-
-#filters {
- position: fixed;
- width: 20%;
- height: 100%;
- top: 0;
- right: 0;
- background-color: #fff;
- padding: 15px;
- padding-right: 30px;
- padding-top: 30px;
- border-left: 1px #333 solid;
- z-index: 12;
- min-width: 300px;
-}
-
-#filters form .filter-group {
- margin: 5px;
-}
-
-#download-form {
- position: fixed;
- width: 10%;
- height: 100%;
- top: 0;
- right: 0;
- background-color: #fff;
- padding: 15px;
- padding-right: 30px;
- padding-top: 30px;
- border-left: 1px #333 solid;
- z-index: 12;
- min-width: 200px;
-}
-
-#download-form li {
- display: block;
- padding: 0.5em 2em 0.5em 1em;
- color: #fff;
- position: relative;
- text-transform: uppercase;
- text-decoration: none;
- font-weight: 400;
- font-family: PT Sans, sans-serif;
- transition: all 0.5s ease;
-}
-
-/* ==========================================================================
- 6 = Media Queries
- ========================================================================== */
-
-@media screen and (max-width: 1050px) {
- .entry {
- width: 49%;
- }
-
- .entry:nth-child(3n+1) {
- margin-left: 1.5%;
- }
-
- .entry:nth-child(2n+1) {
- margin-left: 0;
- }
-}
-
-@media screen and (max-width: 900px) {
- #article {
- width: 80%;
- }
-
- .topPosF {
- right: 2.5em;
- }
-}
-
-@media screen and (max-width: 700px) {
- .entry {
- width: 100%;
- margin-left: 0;
- }
-
- #display-mode {
- display: none;
- }
-}
-
-@media screen and (max-height: 770px) {
- .menu.users,
- .menu.internal,
- .menu.developer {
- display: none;
- }
-}
-
-@media screen and (max-width: 500px) {
- .entry {
- width: 100%;
- margin-left: 0;
- }
-
- body > header {
- background-color: #333;
- position: fixed;
- top: 0;
- width: 100%;
- height: 3em;
- z-index: 11;
- }
-
- #links li:last-child {
- position: static;
- width: auto;
- }
-
- #links li:last-child a::before {
- content: none;
- }
-
- .logo {
- width: 1.25em;
- height: 1.25em;
- left: 0;
- top: 0;
- }
-
- .login > header {
- position: static;
- }
-
- .login form {
- width: 100%;
- position: static;
- margin-left: 0;
- }
-
- .login .logo {
- height: auto;
- top: 0.5em;
- width: 75px;
- margin-left: -37.5px;
- }
-
- .desktopHide {
- display: block;
- position: fixed;
- z-index: 20;
- top: 0;
- right: 0;
- border: 0;
- width: 2.5em;
- height: 2.5em;
- cursor: pointer;
- background-color: #999;
- font-size: 1.2em;
- }
-
- .desktopHide:hover,
- .desktopHide:focus {
- background-color: #fff;
- }
-
- #links {
- display: none;
- width: 100%;
- height: auto;
- padding-top: 3em;
- }
-
- #links.menu--open {
- display: block;
- }
-
- footer {
- position: static;
- margin-right: 3em;
- }
-
- #main {
- margin-left: 1.5em;
- padding-right: 1.5em;
- position: static;
- margin-top: 3em;
- }
-
- .card-entry-labels {
- display: none;
- }
-
- #article_toolbar .topPosF {
- display: none;
- }
-
- #article {
- width: 100%;
- }
-
- #article h1 {
- font-size: 1.5em;
- }
-
- #article_toolbar a {
- padding: 0.3em 0.4em 0.2em;
- }
-
- #display-mode {
- display: none;
- }
-
- .popup-form,
- #bagit-form,
- #search-form {
- left: 0;
- width: 100%;
- border-left: none;
- }
-
- .popup-form form,
- #bagit-form form,
- #search-form form {
- width: 100%;
- }
-}
+++ /dev/null
-
-@media screen and (max-width: 1050px) {
- .entry {
- width: 49%;
- }
-
- .entry:nth-child(3n+1) {
- margin-left: 1.5%;
- }
-
- .entry:nth-child(2n+1) {
- margin-left: 0;
- }
-}
-
-@media screen and (max-width: 900px) {
- #article {
- width: 80%;
- }
-
- .topPosF {
- right: 2.5em;
- }
-}
-
-@media screen and (max-width: 700px) {
- .entry {
- width: 100%;
- margin-left: 0;
- }
-
- #display-mode {
- display: none;
- }
-}
-
-@media screen and (max-height: 770px) {
- .menu.users,
- .menu.internal,
- .menu.developer {
- display: none;
- }
-}
-
-@media screen and (max-width: 500px) {
- .entry {
- width: 100%;
- margin-left: 0;
- }
-
- body > header {
- background-color: #333;
- position: fixed;
- top: 0;
- width: 100%;
- height: 3em;
- z-index: 11;
- }
-
- #links li:last-child {
- position: static;
- width: auto;
- }
-
- #links li:last-child a::before {
- content: none;
- }
-
- .logo {
- width: 1.25em;
- height: 1.25em;
- left: 0;
- top: 0;
- }
-
- .login > header {
- position: static;
- }
-
- .login form {
- width: 100%;
- position: static;
- margin-left: 0;
- }
-
- .login .logo {
- height: auto;
- top: 0.5em;
- width: 75px;
- margin-left: -37.5px;
- }
-
- .desktopHide {
- display: block;
- position: fixed;
- z-index: 20;
- top: 0;
- right: 0;
- border: 0;
- width: 2.5em;
- height: 2.5em;
- cursor: pointer;
- background-color: #999;
- font-size: 1.2em;
- }
-
- .desktopHide:hover,
- .desktopHide:focus {
- background-color: #fff;
- }
-
- #links {
- display: none;
- width: 100%;
- height: auto;
- padding-top: 3em;
- }
-
- #links.menu--open {
- display: block;
- }
-
- footer {
- position: static;
- margin-right: 3em;
- }
-
- #main {
- margin-left: 1.5em;
- padding-right: 1.5em;
- position: static;
- margin-top: 3em;
- }
-
- .card-entry-labels {
- display: none;
- }
-
- #article_toolbar .topPosF {
- display: none;
- }
-
- #article {
- width: 100%;
- }
-
- #article h1 {
- font-size: 1.5em;
- }
-
- #article_toolbar a {
- padding: 0.3em 0.4em 0.2em;
- }
-
- #display-mode {
- display: none;
- }
-
- .popup-form,
- #bagit-form,
- #search-form {
- left: 0;
- width: 100%;
- border-left: none;
- }
-
- .popup-form form,
- #bagit-form form,
- #search-form form {
- width: 100%;
- }
-}
-
-@media only print {
- header h1.logo {
- display: none;
- }
-}
+++ /dev/null
-/* ==========================================================================
- Messages
- ========================================================================== */
-
-.messages {
- text-align: left;
- width: 60%;
- margin: auto 17%;
-
- > * {
- display: inline-block;
- }
-
- .install {
- text-align: left;
-
- &.error {
- border: 1px solid #c42608;
- color: #c00 !important;
- background: #fff0ef;
- }
-
- &.notice {
- border: 1px solid #ebcd41;
- color: #000;
- background: #fffcd3;
- }
-
- &.success {
- border: 1px solid #6dc70c;
- background: #e0fbcc !important;
- }
- }
-}
-
-.warning {
- font-weight: bold;
- display: block;
- width: 100%;
-}
-
-.more-info {
- font-size: 0.85em;
- line-height: 1.5;
- color: #aaa;
-
- a {
- color: #aaa;
- }
-}
+++ /dev/null
-/* ==========================================================================
- Pictos
- ========================================================================== */
-
-@font-face {
- font-family: icomoon;
- src: url('~icomoon-free-npm/Font/IcoMoon-Free.ttf');
- font-weight: normal;
- font-style: normal;
-}
-
-.material-icons {
- font-family: 'Material Icons';
- font-weight: normal;
- font-style: normal;
- font-size: 1em; /* Preferred icon size */
- width: 1em;
- height: 1em;
- display: inline-block;
- line-height: 1;
- text-transform: none;
- letter-spacing: normal;
- word-wrap: normal;
- white-space: nowrap;
- direction: ltr;
-
- /* Support for all WebKit browsers. */
- -webkit-font-smoothing: antialiased;
-
- /* Support for Safari and Chrome. */
- text-rendering: optimizeLegibility;
-
- /* Support for Firefox. */
- -moz-osx-font-smoothing: grayscale;
-
- /* Support for IE. */
- font-feature-settings: 'liga';
-
- .md-18 { font-size: 18px; }
- .md-24 { font-size: 24px; }
- .md-36 { font-size: 36px; }
- .md-48 { font-size: 48px; }
-
- .vertical-align-middle {
- vertical-align: middle !important;
- }
-}
-
-.icon span,
-.icon-image span {
- position: absolute;
- top: -9999px;
-}
-
-[class^="icon-"]::before,
-[class*=" icon-"]::before {
- font-family: icomoon;
- speak: none;
- font-style: normal;
- font-weight: normal;
- font-variant: normal;
- text-transform: none;
- line-height: 1;
-
- /* Enable Ligatures ================ */
- letter-spacing: 0;
- -webkit-font-feature-settings: "liga";
- -moz-font-feature-settings: "liga=1";
- -moz-font-feature-settings: "liga";
- -ms-font-feature-settings: "liga" 1;
- -o-font-feature-settings: "liga";
- font-feature-settings: "liga";
-
- /* Better Font Rendering =========== */
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-
-.icon-flattr::before {
- content: "\ead4";
-}
-
-.icon-mail::before {
- content: "\ea86";
-}
-
-.icon-up-open::before {
- content: "\e80b";
-}
-
-.icon-star::before {
- content: "\e9d9";
-}
-
-.icon-check::before {
- content: "\ea10";
-}
-
-.icon-link::before {
- content: "\e9cb";
-}
-
-.icon-reply::before {
- content: "\e806";
-}
-
-.icon-menu::before {
- content: "\e9bd";
-}
-
-.icon-clock::before {
- content: "\e803";
-}
-
-.icon-twitter::before {
- content: "\ea96";
-}
-
-.icon-down-open::before {
- content: "\e809";
-}
-
-.icon-trash::before {
- content: "\e9ac";
-}
-
-.icon-delete::before {
- content: "\ea0d";
-}
-
-.icon-power::before {
- content: "\ea14";
-}
-
-.icon-arrow-up-thick::before {
- content: "\ea3a";
-}
-
-.icon-feed::before {
- content: "\e808";
-}
-
-.icon-print::before {
- content: "\e954";
-}
-
-.icon-reload::before {
- content: "\ea2e";
-}
-
-.icon-price-tags::before {
- content: "\e936";
-}
-
-.icon-eye::before {
- content: "\e9ce";
-}
-
-.icon-no-eye::before {
- content: "\e9d1";
-}
-
-.icon-calendar::before {
- content: "\e953";
-}
-
-.icon-time::before {
- content: "\e952";
-}
-
-/* .icon-image class, for image-based icons
- ========================================================================== */
-
-.icon-image {
- background: no-repeat center/80%;
- padding-right: 1em !important;
- padding-left: 1em !important;
-}
-
-/* Carrot (http://carrot.org) */
-.icon-image--carrot {
- background-image: url("../../_global/img/icons/carrot-icon--white.png");
-}
-
-/* Diaspora */
-.icon-image--diaspora {
- background-image: url("../../_global/img/icons/Diaspora-asterisk.svg");
-}
-
-/* Unmark.it */
-.icon-image--unmark {
- background-image: url("../../_global/img/icons/unmark-icon--black.png");
-}
-
-/* shaarli */
-.icon-image--shaarli {
- background-image: url("../../_global/img/icons/shaarli.png");
-}
-
-/* ==========================================================================
- Icon selected
- ========================================================================== */
-
-.icon-star.fav::before {
- color: #fff;
-}
-
-.icon-check.archive::before {
- color: #fff;
-}
+++ /dev/null
-@media print {
- /* ### Layout ### */
-
- body {
- font-family: Serif;
- background-color: #fff;
- }
-
- @page {
- margin: 1cm;
- }
-
- img {
- max-width: 100% !important;
- }
-
- /* ### Content ### */
-
- /* Hide useless blocks */
- body > .logo,
- #article_toolbar,
- #links,
- #sort,
- body > footer,
- .top_link,
- div.tools,
- header div,
- .messages,
- .entrie + .results,
- #article .mbm a,
- #article-informations {
- display: none !important;
- }
-
- article {
- border: none !important;
- }
-
- /* Add URL after links */
- .vieworiginal a::after {
- content: " (" attr(href) ")";
- }
-
- /* Add explanation after abbr */
- abbr[title]::after {
- content: " (" attr(title) ")";
- }
-
- /* Change border on current pager item */
- .pagination span.current {
- border-style: dashed;
- }
-
- #main {
- width: 100%;
- margin: 0;
- padding: 0;
- }
-
- #article {
- width: 100%;
- }
-}
+++ /dev/null
-/*
- Ratatouille mini Framework css by Thomas LEBEAU
- Base on KNACSS => www.KNACSS.com (2013-10) @author: Raphael Goetter, Alsacreations
- and normalize.css
-*/
-
-* {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-
-html {
- font-family: sans-serif; /* 1 */
- -ms-text-size-adjust: 100%; /* 2 */
- -webkit-text-size-adjust: 100%; /* 2 */
-}
-
-body {
- font-size: 1em;
- line-height: 1.5;
- margin: 0;
-}
-
-/* ==========================================================================
- Mise en forme
- ========================================================================== */
-
-h1:first-child,
-h2:first-child,
-h3:first-child,
-h4:first-child,
-h5:first-child,
-h6:first-child,
-p:first-child,
-ul:first-child,
-ol:first-child,
-dl:first-child {
- margin-top: 0;
-}
-
-code,
-kbd,
-pre,
-samp {
- font-family: monospace, serif;
-}
-
-pre {
- white-space: pre-wrap;
-}
-
-.upper {
- text-transform: uppercase;
-}
-
-.bold {
- font-weight: bold;
-}
-
-.inner {
- margin: 0 auto;
- max-width: 61.25em; /* 980px */
-}
-
-table,
-img,
-figure {
- max-width: 100%;
- height: auto;
-}
-
-iframe {
- max-width: 100%;
-}
-
-.fl {
- float: left;
-}
-
-.fr {
- float: right;
-}
-
-table {
- border-collapse: collapse;
-}
-
-figure {
- margin: 0;
-}
-
-button,
-input,
-select,
-textarea {
- font-family: inherit;
- font-size: 100%;
- margin: 0;
-}
-
-input[type="search"] {
- -webkit-appearance: textfield;
-}
-
-/* ==========================================================================
- Mise en page
- ========================================================================== */
-
-.dib {
- display: inline-block;
- vertical-align: middle;
-}
-
-.dnone {
- display: none;
-}
-
-.dtable {
- display: table;
-}
-
-.dtable > * {
- display: table-row;
-}
-
-.dtable > * > * {
- display: table-cell;
-}
-
-.element-invisible {
- border: 0;
- clip: rect(0 0 0 0);
- height: 1px;
- margin: -1px;
- overflow: hidden;
- padding: 0;
- position: absolute;
- width: 1px;
-}
-
-.small {
- font-size: 0.8em;
-}
-
-.big {
- font-size: 1.2em;
-}
-
-/* Width */
-
-.w100 {
- width: 100%;
-}
-
-.w90 {
- width: 90%;
-}
-
-.w80 {
- width: 80%;
-}
-
-.w70 {
- width: 70%;
-}
-
-.w60 {
- width: 60%;
-}
-
-.w50 {
- width: 50%;
-}
-
-.w40 {
- width: 40%;
-}
-
-.w30 {
- width: 30%;
-}
-
-.w20 {
- width: 20%;
-}
-
-.w10 {
- width: 10%;
-}
-
-/* ==========================================================================
- Internet Explorer
- ========================================================================== */
-
-/* IE8 and IE9 */
-
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-main,
-nav,
-section,
-summary {
- display: block;
-}
-
-/* IE8 and IE9 */
-
-audio,
-canvas,
-video {
- display: inline-block;
-}
-
-@media screen and (-webkit-min-device-pixel-ratio: 0) {
- select {
- -webkit-appearance: none;
- border-radius: 0;
- }
-}
+++ /dev/null
-/* ==========================================================================
- "save a link" related styles
- ========================================================================== */
-
-.popup-form {
- background: rgba(0, 0, 0, 0.5);
- position: absolute;
- top: 0;
- left: 10em;
- z-index: 20;
- height: 100%;
- width: 100%;
- margin: 0;
- margin-top: -30% !important;
- padding: 2em;
- display: none;
- border-left: 1px #eee solid;
-
- form {
- background-color: #fff;
- position: absolute;
- top: 0;
- left: 0;
- z-index: 20;
- border: 10px solid #000;
- width: 400px;
- height: 200px;
- padding: 2em;
- }
-}
-
-#bagit-form-form .addurl {
- margin-left: 0;
-}
-
-.closeMessage,
-.close-button {
- background-color: #000;
- color: #fff;
- font-size: 1.2em;
- line-height: 1.6;
- width: 1.6em;
- height: 1.6em;
- text-align: center;
- text-decoration: none;
-
- &:hover,
- &:focus {
- background-color: #999;
- color: #000;
- }
-}
-
-.close-button--popup {
- display: inline-block;
- position: absolute;
- top: 0;
- right: 0;
- font-size: 1.4em;
-}
-
-.active-current {
- background-color: #999;
-
- &::after {
- content: "";
- width: 0;
- height: 0;
- position: absolute;
- border: 10px solid transparent;
- border-right-color: #eee;
- right: 0;
- top: 50%;
- margin-top: -10px;
- }
-}
-
-.opacity03 {
- opacity: 0.3;
-}
-
-.add-to-wallabag-link-after {
- background-color: #000;
- color: #fff;
- padding: 0 3px 2px;
-}
-
-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: 0.3s;
- transition-timing-function: ease-in;
-}
-
-a.add-to-wallabag-link-after::after {
- content: "w";
-}
-
-#add-link-result {
- font-weight: bold;
- font-size: 0.9em;
-}
-
-.btn-clickable {
- cursor: pointer;
-}
+++ /dev/null
-import $ from 'jquery';
-
-/* Global imports */
-import '../_global/index';
-
-/* Shortcuts */
-import './js/shortcuts/main';
-import './js/shortcuts/entry';
-
-/* Tools */
-import toggleSaveLinkForm from './js/uiTools';
-
-/* Theme style */
-import './css/index.scss';
-
-$(document).ready(() => {
- /* ==========================================================================
- Menu
- ========================================================================== */
-
- $('#menu').click(() => {
- $('#links').toggleClass('menu--open');
- const content = $('#content');
- if (content.hasClass('opacity03')) {
- content.removeClass('opacity03');
- }
- });
-
- /* ==========================================================================
- Add tag panel
- ========================================================================== */
-
- $('#nav-btn-add-tag').on('click', () => {
- $('.baggy-add-tag').toggle(100);
- $('.nav-panel-menu').addClass('hidden');
- $('#tag_label').focus();
- return false;
- });
-
- /**
- * Filters & Export
- */
- // no display if filters not available
- if ($('div').is('#filters')) {
- $('#button_filters').show();
- $('#clear_form_filters').on('click', () => {
- $('#filters input').val('');
- $('#filters :checked').removeAttr('checked');
- return false;
- });
- }
-
- /**
- * Close window after adding entry if popup
- */
- const currentUrl = window.location.href;
- if (currentUrl.match('&closewin=true')) {
- window.close();
- }
-
- /**
- if ($('article').size() > 0) {
- const waypoint = new Waypoint({
- element: $('.wallabag-title').get(0),
- handler: (direction) => {
- console.log(direction);
- if (direction === 'down') {
- $('aside.tags').fadeIn('slow');
- } else {
- $('aside.tags').fadeOut('slow');
- }
- },
- offset: 250,
- });
- }
- */
-
- /**
- * Tags autocomplete
- */
- /**
- * Not working on v2
- *
-
- $('#value').bind('keydown', (event) => {
- if (event.keyCode === $.ui.keyCode.TAB && $(this).data('ui-autocomplete').menu.active) {
- event.preventDefault();
- }
- }).autocomplete({
- source: function source(request, response) {
- $.getJSON('./?view=tags', {
- term: extractLast(request.term),
- //id: $(':hidden#entry_id').val()
- }, response);
- },
- search: function search() {
- // custom minLength
- const term = extractLast(this.value);
- return term.length >= 1;
- },
- focus: function focus() {
- // prevent value inserted on focus
- return false;
- },
- select: function select(event, ui) {
- const terms = split(this.value);
- // remove the current input
- terms.pop();
- // add the selected item
- terms.push(ui.item.value);
- // add placeholder to get the comma-and-space at the end
- terms.push('');
- this.value = terms.join(', ');
- return false;
- },
- });
- */
-
- //---------------------------------------------------------------------------
- // Close the message box when the user clicks the close icon
- //---------------------------------------------------------------------------
- $('a.closeMessage').on('click', () => {
- $(this).parents('div.messages').slideUp(300, () => { $(this).remove(); });
- return false;
- });
-
- $('#search-form').hide();
- $('#bagit-form').hide();
- $('#filters').hide();
- $('#download-form').hide();
-
- //---------------------------------------------------------------------------
- // Toggle the 'Search' popup in the sidebar
- //---------------------------------------------------------------------------
- function toggleSearch() {
- $('#search-form').toggle();
- $('#search').toggleClass('current');
- $('#search').toggleClass('active-current');
- $('#search-arrow').toggleClass('arrow-down');
- if ($('#search').hasClass('current')) {
- $('#content').addClass('opacity03');
- } else {
- $('#content').removeClass('opacity03');
- }
- }
-
- //---------------------------------------------------------------------------
- // Toggle the 'Filter' popup on entries list
- //---------------------------------------------------------------------------
- function toggleFilter() {
- $('#filters').toggle();
- }
-
- //---------------------------------------------------------------------------
- // Toggle the 'Download' popup on entries list
- //---------------------------------------------------------------------------
- function toggleDownload() {
- $('#download-form').toggle();
- }
-
- //---------------------------------------------------------------------------
- // Toggle the 'Save a Link' popup in the sidebar
- //---------------------------------------------------------------------------
- function toggleBagit() {
- $('#bagit-form').toggle();
- $('#bagit').toggleClass('current');
- $('#bagit').toggleClass('active-current');
- $('#bagit-arrow').toggleClass('arrow-down');
- if ($('#bagit').hasClass('current')) {
- $('#content').addClass('opacity03');
- } else {
- $('#content').removeClass('opacity03');
- }
- }
-
- //---------------------------------------------------------------------------
- // Close all #links popups in the sidebar
- //---------------------------------------------------------------------------
- function closePopups() {
- $('#links .messages').hide();
- $('#links > li > a').removeClass('active-current');
- $('#links > li > a').removeClass('current');
- $('[id$=-arrow]').removeClass('arrow-down');
- $('#content').removeClass('opacity03');
- }
-
- $('#search').click(() => {
- closePopups();
- toggleSearch();
- $('#searchfield').focus();
- });
-
- $('.filter-btn').click(() => {
- closePopups();
- toggleFilter();
- });
-
- $('.download-btn').click(() => {
- closePopups();
- toggleDownload();
- });
-
- $('#bagit').click(() => {
- closePopups();
- toggleBagit();
- $('#plainurl').focus();
- });
-
- $('#search-form-close').click(() => {
- toggleSearch();
- });
-
- $('#filter-form-close').click(() => {
- toggleFilter();
- });
-
- $('#download-form-close').click(() => {
- toggleDownload();
- });
-
- $('#bagit-form-close').click(() => {
- toggleBagit();
- });
-
- const bagitFormForm = $('#bagit-form-form');
-
- /* ==========================================================================
- bag it link and close button
- ========================================================================== */
-
- // send 'bag it link' form request via ajax
- bagitFormForm.submit((event) => {
- $('body').css('cursor', 'wait');
- $('#add-link-result').empty();
-
- $.ajax({
- type: bagitFormForm.attr('method'),
- url: bagitFormForm.attr('action'),
- data: bagitFormForm.serialize(),
- success: function success() {
- $('#add-link-result').html('Done!');
- $('#plainurl').val('').blur('');
- $('body').css('cursor', 'auto');
- },
- error: function error() {
- $('#add-link-result').html('Failed!');
- $('body').css('cursor', 'auto');
- },
- });
-
- event.preventDefault();
- });
-
- /* ==========================================================================
- Process all links inside an article
- ========================================================================== */
-
- $('article a[href^="http"]').after(
- () => `<a href="${$(this).attr('href')}" class="add-to-wallabag-link-after" title="add to wallabag"></a>`,
- );
-
- $('.add-to-wallabag-link-after').click((event) => {
- toggleSaveLinkForm($(this).attr('href'), event);
- event.preventDefault();
- });
-});
+++ /dev/null
-function split(val) {
- return val.split(/,\s*/);
-}
-function extractLast(term) {
- return split(term).pop();
-}
-
-export default { split, extractLast };
+++ /dev/null
-import Mousetrap from 'mousetrap';
-import $ from 'jquery';
-
-$(document).ready(() => {
- if ($('#article').length > 0) {
- /* Article view */
- Mousetrap.bind('o', () => {
- $('div#article_toolbar ul.links a.original')[0].click();
- });
-
- /* mark as favorite */
- Mousetrap.bind('f', () => {
- $('div#article_toolbar ul.links a.favorite')[0].click();
- });
-
- /* mark as read */
- Mousetrap.bind('a', () => {
- $('div#article_toolbar ul.links a.markasread')[0].click();
- });
-
- /* delete */
- Mousetrap.bind('del', () => {
- $('div#article_toolbar ul.links a.delete')[0].click();
- });
- }
-});
+++ /dev/null
-import $ from 'jquery';
-import Mousetrap from 'mousetrap';
-
-$(document).ready(() => {
- Mousetrap.bind('s', () => {
- $('#search').trigger('click');
- $('#search_entry_term').focus();
- return false;
- });
-});
+++ /dev/null
-import $ from 'jquery';
-
-function toggleSaveLinkForm(url, event) {
- $('#add-link-result').empty();
-
- const $bagit = $('#bagit');
- const $bagitForm = $('#bagit-form');
-
- $bagit.toggleClass('active-current');
-
- // only if bag-it link is not presented on page
- if ($bagit.length === 0) {
- if (event !== 'undefined' && event) {
- $bagitForm.css({ position: 'absolute', top: event.pageY, left: event.pageX - 200 });
- } else {
- $bagitForm.css({ position: 'relative', top: 'auto', left: 'auto' });
- }
- }
-
- const searchForm = $('#search-form');
- const plainUrl = $('#plainurl');
- if (searchForm.length !== 0) {
- $('#search').removeClass('current');
- $('#search-arrow').removeClass('arrow-down');
- searchForm.hide();
- }
- $bagitForm.toggle();
- $('#content').toggleClass('opacity03');
- if (url !== 'undefined' && url) {
- plainUrl.val(url);
- }
- plainUrl.focus();
-}
-
-export default toggleSaveLinkForm;
liip_theme:
load_controllers: false
themes:
- - baggy
- material
autodetect_theme: wallabag_core.helper.detect_active_theme
return {
entry: {
material: path.join(rootDir, './app/Resources/static/themes/material/index.js'),
- baggy: path.join(rootDir, './app/Resources/static/themes/baggy/index.js'),
public: path.join(rootDir, './app/Resources/static/themes/_global/share.js'),
},
output: {
{
protected $tokenStorage;
protected $defaultTheme;
+ protected $themes;
/**
* @param TokenStorageInterface $tokenStorage Needed to retrieve the current user
* @param string $defaultTheme Default theme when user isn't logged in
+ * @param array $themes Themes come from the LiipThemeBundle (liip_theme.themes)
*/
- public function __construct(TokenStorageInterface $tokenStorage, $defaultTheme)
+ public function __construct(TokenStorageInterface $tokenStorage, $defaultTheme, $themes)
{
$this->tokenStorage = $tokenStorage;
$this->defaultTheme = $defaultTheme;
+ $this->themes = $themes;
}
public function setUserAgent($userAgent)
return $this->defaultTheme;
}
+ if (!in_array($config->getTheme(), $this->themes)) {
+ return $this->defaultTheme;
+ }
+
return $config->getTheme();
}
}
arguments:
- "@security.token_storage"
- "%wallabag_core.theme%"
+ - "%liip_theme.themes%"
# custom form type
wallabag_core.form.type.config:
+++ /dev/null
-{% extends "WallabagCoreBundle::layout.html.twig" %}
-
-{% block title %}{{ 'config.page_title'|trans }}{% endblock %}
-
-{% block content %}
- <h2>{{ 'config.tab_menu.settings'|trans }}</h2>
-
- {{ form_start(form.config) }}
- {{ form_errors(form.config) }}
-
- <fieldset class="w500p inline">
- <div class="row">
- {{ form_label(form.config.theme) }}
- {{ form_errors(form.config.theme) }}
- {{ form_widget(form.config.theme) }}
- </div>
- <a href="#" title="{{ 'config.form_settings.help_theme'|trans }}">
- <i class="material-icons">live_help</i>
- </a>
- </fieldset>
-
- <fieldset class="w500p inline">
- <div class="row">
- {{ form_label(form.config.items_per_page) }}
- {{ form_errors(form.config.items_per_page) }}
- {{ form_widget(form.config.items_per_page) }}
- </div>
- <a href="#" title="{{ 'config.form_settings.help_items_per_page'|trans }}">
- <i class="material-icons">live_help</i>
- </a>
- </fieldset>
-
- <fieldset class="w500p inline">
- <div class="row">
- {{ form_label(form.config.reading_speed) }}
- {{ form_errors(form.config.reading_speed) }}
- {{ form_widget(form.config.reading_speed) }}
- <p>
- {{ 'config.form_settings.reading_speed.help_message'|trans }}
- <a href="http://www.myreadspeed.com/calculate/">myreadspeed</a>
- </p>
- </div>
- <a href="#" title="{{ 'config.form_settings.help_reading_speed'|trans }}">
- <i class="material-icons">live_help</i>
- </a>
- </fieldset>
-
- <fieldset class="w500p inline">
- <div class="row">
- {{ form_label(form.config.action_mark_as_read) }}
- {{ form_errors(form.config.action_mark_as_read) }}
- {{ form_widget(form.config.action_mark_as_read) }}
- </div>
- </fieldset>
-
- <fieldset class="w500p inline">
- <div class="row">
- {{ form_label(form.config.language) }}
- {{ form_errors(form.config.language) }}
- {{ form_widget(form.config.language) }}
- </div>
- <a href="#" title="{{ 'config.form_settings.help_language'|trans }}">
- <i class="material-icons">live_help</i>
- </a>
- </fieldset>
-
- <fieldset class="w500p inline">
- <div class="row">
- {{ form_label(form.config.pocket_consumer_key) }}
- {{ form_errors(form.config.pocket_consumer_key) }}
- {{ form_widget(form.config.pocket_consumer_key) }}
- <p>
- »
- <a href="https://getpocket.com/developer/docs/authentication">https://getpocket.com/developer/docs/authentication</a>
- </p>
- </div>
- <a href="#" title="{{ 'config.form_settings.help_pocket_consumer_key'|trans }}">
- <i class="material-icons">live_help</i>
- </a>
- </fieldset>
-
- <fieldset class="w500p inline">
- <div class="row">
- <h3>{{ 'config.form_settings.android_configuration'|trans }}</h3>
- <a href="wallabag://{{ app.user.username }}@{{ wallabag_url }}">{{ 'config.form_settings.android_instruction' | trans }}</a>
- <br/>
- <img id="androidQrcode" />
- <script>
- document.getElementById('androidQrcode').src = jrQrcode.getQrBase64('wallabag://{{ app.user.username }}@{{ wallabag_url }}');
- </script>
- </div>
- </fieldset>
-
- {{ form_rest(form.config) }}
- </form>
-
- <h2>{{ 'config.tab_menu.feed'|trans }}</h2>
-
- {{ form_start(form.feed) }}
- {{ form_errors(form.feed) }}
-
- <div class="row">
- {{ 'config.form_feed.description'|trans }}
- </div>
-
- <fieldset class="w500p inline">
- <div class="row">
- <label>{{ 'config.form_feed.token_label'|trans }}</label>
- {% if feed.token %}
- {{ feed.token }}
- {% else %}
- <em>{{ 'config.form_feed.no_token'|trans }}</em>
- {% endif %}
-
- {% if feed.token %}
- – <a href="{{ path('generate_token') }}">{{ 'config.form_feed.token_reset'|trans }}</a>
- – <a href="{{ path('revoke_token') }}">{{ 'config.form_feed.token_revoke'|trans }}</a>
- {% else %}
- – <a href="{{ path('generate_token') }}">{{ 'config.form_feed.token_create'|trans }}</a>
- {% endif %}
- </div>
- </fieldset>
-
- {% if feed.token %}
- <fieldset class="w500p inline">
- <div class="row">
- <label>{{ 'config.form_feed.feed_links'|trans }}</label>
- <ul>
- <li><a href="{{ path('unread_feed', {'username': feed.username, 'token': feed.token}) }}">{{ 'config.form_feed.feed_link.unread'|trans }}</a></li>
- <li><a href="{{ path('starred_feed', {'username': feed.username, 'token': feed.token}) }}">{{ 'config.form_feed.feed_link.starred'|trans }}</a></li>
- <li><a href="{{ path('archive_feed', {'username': feed.username, 'token': feed.token}) }}">{{ 'config.form_feed.feed_link.archive'|trans }}</a></li>
- <li><a href="{{ path('all_feed', {'username': feed.username, 'token': feed.token}) }}">{{ 'config.form_feed.feed_link.all'|trans }}</a></li>
- </ul>
- </div>
- </fieldset>
- {% endif %}
-
- <fieldset class="w500p inline">
- <div class="row">
- {{ form_label(form.feed.feed_limit) }}
- {{ form_errors(form.feed.feed_limit) }}
- {{ form_widget(form.feed.feed_limit) }}
- </div>
- </fieldset>
-
- {{ form_rest(form.feed) }}
- </form>
-
- <h2>{{ 'config.tab_menu.user_info'|trans }}</h2>
-
- {{ form_start(form.user) }}
- {{ form_errors(form.user) }}
- <fieldset class="w500p inline">
- <div class="row">
- <label>{{ 'config.form_user.login_label'|trans }}</label>
- {{ app.user.username }}
- </div>
- </fieldset>
-
- <fieldset class="w500p inline">
- <div class="row">
- {{ form_label(form.user.name) }}
- {{ form_errors(form.user.name) }}
- {{ form_widget(form.user.name) }}
- </div>
- </fieldset>
-
- <fieldset class="w500p inline">
- <div class="row">
- {{ form_label(form.user.email) }}
- {{ form_errors(form.user.email) }}
- {{ form_widget(form.user.email) }}
- </div>
- </fieldset>
-
- {{ form_widget(form.user.save) }}
-
- {% if twofactor_auth %}
- <h5>{{ 'config.otp.page_title'|trans }}</h5>
-
- <div class="row">
- {{ 'config.form_user.two_factor_description'|trans }}
- </div>
-
- <table>
- <thead>
- <tr>
- <th>{{ 'config.form_user.two_factor.table_method'|trans }}</th>
- <th>{{ 'config.form_user.two_factor.table_state'|trans }}</th>
- <th>{{ 'config.form_user.two_factor.table_action'|trans }}</th>
- </tr>
- </thead>
-
- <tbody>
- <tr>
- <td>{{ 'config.form_user.two_factor.emailTwoFactor_label'|trans }}</td>
- <td>{% if app.user.isEmailTwoFactor %}<b>{{ 'config.form_user.two_factor.state_enabled'|trans }}</b>{% else %}{{ 'config.form_user.two_factor.state_disabled'|trans }}{% endif %}</td>
- <td><a href="{{ path('config_otp_email') }}" class="waves-effect waves-light btn{% if app.user.isEmailTwoFactor %} disabled{% endif %}">{{ 'config.form_user.two_factor.action_email'|trans }}</a></td>
- </tr>
- <tr>
- <td>{{ 'config.form_user.two_factor.googleTwoFactor_label'|trans }}</td>
- <td>{% if app.user.isGoogleTwoFactor %}<b>{{ 'config.form_user.two_factor.state_enabled'|trans }}</b>{% else %}{{ 'config.form_user.two_factor.state_disabled'|trans }}{% endif %}</td>
- <td><a href="{{ path('config_otp_app') }}" class="waves-effect waves-light btn{% if app.user.isGoogleTwoFactor %} disabled{% endif %}">{{ 'config.form_user.two_factor.action_app'|trans }}</a></td>
- </tr>
- </tbody>
- </table>
-
- {% endif %}
-
- {{ form_widget(form.user._token) }}
- </form>
-
- {% if enabled_users > 1 %}
- <h2>{{ 'config.form_user.delete.title'|trans }}</h2>
-
- <p>{{ 'config.form_user.delete.description'|trans }}</p>
- <a href="{{ path('delete_account') }}" onclick="return confirm('{{ 'config.form_user.delete.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red delete-account">
- {{ 'config.form_user.delete.button'|trans }}
- </a>
- {% endif %}
-
- <h2>{{ 'config.tab_menu.password'|trans }}</h2>
-
- {{ form_start(form.pwd) }}
- {{ form_errors(form.pwd) }}
-
- <div class="row">
- {{ 'config.form_password.description'|trans }}
- </div>
-
- <fieldset class="w500p inline">
- <div class="row">
- {{ form_label(form.pwd.old_password) }}
- {{ form_errors(form.pwd.old_password) }}
- {{ form_widget(form.pwd.old_password) }}
- </div>
- </fieldset>
-
- <fieldset class="w500p inline">
- <div class="row">
- {{ form_label(form.pwd.new_password.first) }}
- {{ form_errors(form.pwd.new_password.first) }}
- {{ form_widget(form.pwd.new_password.first) }}
- </div>
- </fieldset>
-
- <fieldset class="w500p inline">
- <div class="row">
- {{ form_label(form.pwd.new_password.second) }}
- {{ form_errors(form.pwd.new_password.second) }}
- {{ form_widget(form.pwd.new_password.second) }}
- </div>
- </fieldset>
-
- {{ form_rest(form.pwd) }}
- </form>
-
- <h2>{{ 'config.tab_menu.rules'|trans }}</h2>
-
- <ul>
- {% for tagging_rule in app.user.config.taggingRules %}
- <li>
- {{ 'config.form_rules.if_label'|trans }}
- « {{ tagging_rule.rule }} »
- {{ 'config.form_rules.then_tag_as_label'|trans }}
- « {{ tagging_rule.tags|join(', ') }} »
- <a href="{{ path('edit_tagging_rule', {id: tagging_rule.id}) }}" title="{{ 'config.form_rules.edit_rule_label'|trans }}" class="tool mode_edit">✎</a>
- <a href="{{ path('delete_tagging_rule', {id: tagging_rule.id}) }}" title="{{ 'config.form_rules.delete_rule_label'|trans }}" class="tool delete icon-trash icon"></a>
- </li>
- {% endfor %}
- </ul>
-
- {{ form_start(form.new_tagging_rule) }}
- {{ form_errors(form.new_tagging_rule) }}
-
- <fieldset class="w500p inline">
- <div class="row">
- {{ form_label(form.new_tagging_rule.rule) }}
- {{ form_errors(form.new_tagging_rule.rule) }}
- {{ form_widget(form.new_tagging_rule.rule) }}
- </div>
- </fieldset>
-
- <fieldset class="w500p inline">
- <div class="row">
- {{ form_label(form.new_tagging_rule.tags) }}
- {{ form_errors(form.new_tagging_rule.tags) }}
- {{ form_widget(form.new_tagging_rule.tags) }}
- </div>
- </fieldset>
-
- {{ form_rest(form.new_tagging_rule) }}
- </form>
-
- <div class="row">
- <h3>{{ 'config.form_rules.card.import_tagging_rules'|trans }}</h3>
- <p>{{ 'config.form_rules.card.import_tagging_rules_detail'|trans }}</p>
- </div>
-
- {{ form_start(form.import_tagging_rule) }}
- {{ form_errors(form.import_tagging_rule) }}
-
- <fieldset class="w500p inline">
- <div class="row">
- {{ form_label(form.import_tagging_rule.file) }}
- {{ form_errors(form.import_tagging_rule.file) }}
- {{ form_widget(form.import_tagging_rule.file) }}
- </div>
- </fieldset>
-
- {{ form_rest(form.import_tagging_rule) }}
- </form>
-
- {% if app.user.config.taggingRules is not empty %}
- <div class="row">
- <h3>{{ 'config.form_rules.card.export_tagging_rules'|trans }}</h3>
- <p>{{ 'config.form_rules.card.export_tagging_rules_detail'|trans }}</p>
- <p><a href="{{ path('export_tagging_rule') }}" class="waves-effect waves-light btn">{{ 'config.form_rules.export'|trans }}</a></p>
- </div>
- {% endif %}
-
- <div class="row">
- <div class="input-field col s12">
- <h3>{{ 'config.form_rules.faq.title'|trans }}</h3>
-
- <h4>{{ 'config.form_rules.faq.tagging_rules_definition_title'|trans }}</h4>
- <p class="help">{{ 'config.form_rules.faq.tagging_rules_definition_description'|trans|raw }}</p>
-
- <h4>{{ 'config.form_rules.faq.how_to_use_them_title'|trans }}</h4>
- <p class="help">{{ 'config.form_rules.faq.how_to_use_them_description'|trans|raw }}</p>
-
- <h4>{{ 'config.form_rules.faq.variables_available_title'|trans }}</h4>
- <p class="help">
- {{ 'config.form_rules.faq.variables_available_description'|trans }}
- </p>
-
- <table class="bordered">
- <thead>
- <tr>
- <th>{{ 'config.form_rules.faq.variable_description.label'|trans }}</th>
- <th>{{ 'config.form_rules.faq.meaning'|trans }}</th>
- <th>{{ 'config.form_rules.faq.operator_description.label'|trans }}</th>
- <th>{{ 'config.form_rules.faq.meaning'|trans }}</th>
- </tr>
- </thead>
-
- <tbody>
- <tr>
- <td>title</td>
- <td>{{ 'config.form_rules.faq.variable_description.title'|trans }}</td>
- <td><=</td>
- <td>{{ 'config.form_rules.faq.operator_description.less_than'|trans }}</td>
- </tr>
- <tr>
- <td>url</td>
- <td>{{ 'config.form_rules.faq.variable_description.url'|trans }}</td>
- <td><</td>
- <td>{{ 'config.form_rules.faq.operator_description.strictly_less_than'|trans }}</td>
- </tr>
- <tr>
- <td>isArchived</td>
- <td>{{ 'config.form_rules.faq.variable_description.isArchived'|trans }}</td>
- <td>>=</td>
- <td>{{ 'config.form_rules.faq.operator_description.greater_than'|trans }}</td>
- </tr>
- <tr>
- <td>isStarred</td>
- <td>{{ 'config.form_rules.faq.variable_description.isStarred'|trans }}</td>
- <td>></td>
- <td>{{ 'config.form_rules.faq.operator_description.strictly_greater_than'|trans }}</td>
- </tr>
- <tr>
- <td>content</td>
- <td>{{ 'config.form_rules.faq.variable_description.content'|trans }}</td>
- <td>=</td>
- <td>{{ 'config.form_rules.faq.operator_description.equal_to'|trans }}</td>
- </tr>
- <tr>
- <td>language</td>
- <td>{{ 'config.form_rules.faq.variable_description.language'|trans }}</td>
- <td>!=</td>
- <td>{{ 'config.form_rules.faq.operator_description.not_equal_to'|trans }}</td>
- </tr>
- <tr>
- <td>mimetype</td>
- <td>{{ 'config.form_rules.faq.variable_description.mimetype'|trans }}</td>
- <td>OR</td>
- <td>{{ 'config.form_rules.faq.operator_description.or'|trans }}</td>
- </tr>
- <tr>
- <td>readingTime</td>
- <td>{{ 'config.form_rules.faq.variable_description.readingTime'|trans }}</td>
- <td>AND</td>
- <td>{{ 'config.form_rules.faq.operator_description.and'|trans }}</td>
- </tr>
- <tr>
- <td>domainName</td>
- <td>{{ 'config.form_rules.faq.variable_description.domainName'|trans }}</td>
- <td>matches</td>
- <td>{{ 'config.form_rules.faq.operator_description.matches'|trans|raw }}</td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
-
- <h2>{{ 'config.reset.title'|trans }}</h2>
- <fieldset class="w500p inline">
- <p>{{ 'config.reset.description'|trans }}</p>
- <ul>
- <li>
- <a href="{{ path('config_reset', { type: 'annotations'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
- {{ 'config.reset.annotations'|trans }}
- </a>
- </li>
- <li>
- <a href="{{ path('config_reset', { type: 'tags'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
- {{ 'config.reset.tags'|trans }}
- </a>
- </li>
- <li>
- <a href="{{ path('config_reset', { type: 'archived'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
- {{ 'config.reset.archived'|trans }}
- </a>
- </li>
- <li>
- <a href="{{ path('config_reset', { type: 'entries'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
- {{ 'config.reset.entries'|trans }}
- </a>
- </li>
- </ul>
- </fieldset>
-{% endblock %}
+++ /dev/null
-{% extends "WallabagCoreBundle::layout.html.twig" %}
-
-{% block title %}{{ 'config.page_title'|trans }} > {{ 'config.otp.page_title'|trans }}{% endblock %}
-
-{% block content %}
- <h5>{{ 'config.otp.page_title'|trans }}</h5>
-
- <ol>
- <li>
- <p>{{ 'config.otp.app.two_factor_code_description_1'|trans }}</p>
- <p>{{ 'config.otp.app.two_factor_code_description_2'|trans }}</p>
-
- <p>
- <img id="2faQrcode" class="hide-on-med-and-down" />
- <script>
- document.getElementById('2faQrcode').src = jrQrcode.getQrBase64('{{ qr_code }}');
- </script>
- </p>
- </li>
- <li>
- <p>{{ 'config.otp.app.two_factor_code_description_3'|trans }}</p>
-
- <p><strong>{{ backupCodes|join("\n")|nl2br }}</strong></p>
- </li>
- <li>
- <p>{{ 'config.otp.app.two_factor_code_description_4'|trans }}</p>
-
- {% for flashMessage in app.session.flashbag.get("two_factor") %}
- <div class="card-panel red darken-1 black-text">
- {{ flashMessage|trans }}
- </div>
- {% endfor %}
-
- <form class="form" action="{{ path("config_otp_app_check") }}" method="post">
- <div class="card-content">
- <div class="row">
- <div class="input-field col s12">
- <label for="_auth_code">{{ "auth_code"|trans({}, 'SchebTwoFactorBundle') }}</label>
- <input id="_auth_code" type="text" autocomplete="off" name="_auth_code" />
- </div>
- </div>
- </div>
- <div class="card-action">
- <a href="{{ path('config_otp_app_cancel') }}" class="waves-effect waves-light grey btn">
- {{ 'config.otp.app.cancel'|trans }}
- </a>
- <button class="btn waves-effect waves-light" type="submit" name="send">
- {{ 'config.otp.app.enable'|trans }}
- <i class="material-icons right">send</i>
- </button>
- </div>
- </form>
- </li>
- </ol>
-{% endblock %}
+++ /dev/null
-{% extends "WallabagCoreBundle::layout.html.twig" %}
-
-{% block title %}{{ 'entry.edit.page_title'|trans }}{% endblock %}
-
-{% block content %}
- {{ form(form) }}
-{% endblock %}
+++ /dev/null
-{% extends "WallabagCoreBundle::layout.html.twig" %}
-
-{% block head %}
- {{ parent() }}
- {% if tag is defined and app.user.config.feedToken %}
- <link rel="alternate" type="application/atom+xml" href="{{ path('tag_feed', {'username': app.user.username, 'token': app.user.config.feedToken, 'slug': tag.slug}) }}" />
- {% endif %}
-{% endblock %}
-
-{% block title %}
- {% set filter = '' %}
- {% if tag is defined %}
- {% set filter = tag %}
- {% endif %}
- {% if searchTerm is defined and searchTerm is not empty %}
- {% set filter = searchTerm %}
- {% endif %}
- {% include "@WallabagCore/themes/common/Entry/_title.html.twig" with {'filter': filter} %}
-{% endblock %}
-
-{% block content %}
- {% set currentRoute = app.request.attributes.get('_route') %}
- {% if currentRoute == 'homepage' %}
- {% set currentRoute = 'unread' %}
- {% endif %}
- {% set listMode = app.user.config.listMode %}
- <div class="results">
- <div class="nb-results">{{ 'entry.list.number_on_the_page'|transchoice(entries.count) }}</div>
- <div class="pagination">
- <a href="{{ path('switch_view_mode') }}"><i class="listMode-btn material-icons md-24">{% if listMode == 0 %}list{% else %}view_module{% endif %}</i></a>
- {% if app.user.config.feedToken %}
- {% include "@WallabagCore/themes/common/Entry/_feed_link.html.twig" %}
- {% endif %}
- {% if currentRoute in ['unread', 'starred', 'archive', 'untagged', 'all'] %}
- <a href="{{ path('random_entry', { 'type': currentRoute }) }}"><i class="btn-clickable material-icons md-24 js-random-action">casino</i></a>
- {% endif %}
- <i class="btn-clickable download-btn material-icons md-24 js-export-action">file_download</i>
- <i class="btn-clickable filter-btn material-icons md-24 js-filters-action">filter_list</i>
- {% if entries.getNbPages > 1 %}
- {{ pagerfanta(entries, 'twitter_bootstrap_translated', {'proximity': 1}) }}
- {% endif %}
- </div>
- </div>
-
- {% for entry in entries %}
- <div id="entry-{{ entry.id|e }}" class="{% if listMode == 0 %}entry{% else %}listmode entry{% endif %}">
- <h2><a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title|e|raw }}">{{ entry.title | striptags | truncate(80, true, '…') | default('entry.default_title'|trans) | raw }}</a></h2>
-
- {% set readingTime = entry.readingTime / app.user.config.readingSpeed * 200 %}
- <div class="estimatedTime">
- <span class="tool reading-time">
- {% if readingTime > 0 %}
- {{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': readingTime|round}) }}
- {% else %}
- {{ 'entry.list.reading_time_less_one_minute'|trans|raw }}
- {% endif %}
- </span>
- <span class="tool created-at">
- <i class="tool icon icon-calendar" title="{{ 'entry.view.created_at'|trans }}">
- {{ entry.createdAt|date('Y-m-d') }}
- </i>
- </span>
- </div>
-
- <ul class="tools links">
- <li><a href="{{ entry.url|e }}" target="_blank" rel="noopener" title="{{ 'entry.list.original_article'|trans }} : {{ entry.title|e }}"><span>{{ entry.domainName|removeWww }}</span></a></li>
- <li><a title="{{ 'entry.list.toogle_as_read'|trans }}" class="tool icon {% if entry.isArchived == 0 %}archive-off{% else %}archive{% endif %}" href="{{ path('archive_entry', { 'id': entry.id }) }}"><i class="material-icons md-24 vertical-align-middle">check</i><span>{{ 'entry.list.toogle_as_read'|trans }}</span></a></li>
- <li><a title="{{ 'entry.list.toogle_as_star'|trans }}" class="tool icon {% if entry.isStarred == 0 %}fav-off{% else %}fav{% endif %}" href="{{ path('star_entry', { 'id': entry.id }) }}"><i class="material-icons md-24 vertical-align-middle">star_rate</i><span>{{ 'entry.list.toogle_as_star'|trans }}</span></a></li>
- <li><a title="{{ 'entry.list.delete'|trans }}" class="tool icon" onclick="return confirm('{{ 'entry.confirm.delete'|trans|escape('js') }}')" href="{{ path('delete_entry', { 'id': entry.id }) }}"><i class="material-icons md-24 vertical-align-middle">delete</i><span>{{ 'entry.list.delete'|trans }}</span></a></li>
- </ul>
- {% if (entry.previewPicture is null or listMode == 1) %}
- <ul class="card-entry-tags">
- {% for tag in entry.tags %}
- <li><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li>
- {% endfor %}
- </ul>
- <p {% if listMode == 1 %}class="hide"{% endif %}>{{ entry.content|striptags|slice(0, 300) }}…</p>
- {% else %}
- <ul class="card-entry-labels">
- {% for tag in entry.tags | slice(0, 3) %}
- <li><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li>
- {% endfor %}
- </ul>
- <img class="preview" src="{{ entry.previewPicture }}" alt="{{ entry.title|e|raw }}" />
- {% endif %}
- </div>
- {% endfor %}
-
- {% if entries.getNbPages > 1 %}
- {{ pagerfanta(entries, 'twitter_bootstrap_translated', {'proximity': 1}) }}
- {% endif %}
-
- <!-- Export -->
- <aside id="download-form">
- {% set currentTag = null %}
- {% if tag is defined %}
- {% set currentTag = tag %}
- {% endif %}
- {% set exportSearchTerm = null %}
- {% if searchTerm is defined %}
- {% set exportSearchTerm = searchTerm %}
- {% endif %}
- {% set previousRoute = app.request.attributes.get('currentRoute') %}
- <h2>{{ 'entry.list.export_title'|trans }}</h2>
- <a href="javascript: void(null);" id="download-form-close" class="close-button--popup close-button">×</a>
- <ul>
- {% if craue_setting('export_epub') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'epub', 'tag' : currentTag, 'search_entry[term]' : exportSearchTerm, 'currentRoute' : previousRoute }) }}">EPUB</a></li>{% endif %}
- {% if craue_setting('export_mobi') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'mobi', 'tag' : currentTag, 'search_entry[term]' : exportSearchTerm, 'currentRoute' : previousRoute }) }}">MOBI</a></li>{% endif %}
- {% if craue_setting('export_pdf') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'pdf', 'tag' : currentTag, 'search_entry[term]' : exportSearchTerm, 'currentRoute' : previousRoute }) }}">PDF</a></li>{% endif %}
- {% if craue_setting('export_json') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'json', 'tag' : currentTag, 'search_entry[term]' : exportSearchTerm, 'currentRoute' : previousRoute }) }}">JSON</a></li>{% endif %}
- {% if craue_setting('export_csv') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'csv', 'tag' : currentTag, 'search_entry[term]' : exportSearchTerm, 'currentRoute' : previousRoute }) }}">CSV</a></li>{% endif %}
- {% if craue_setting('export_txt') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'txt', 'tag' : currentTag, 'search_entry[term]' : exportSearchTerm, 'currentRoute' : previousRoute }) }}">TXT</a></li>{% endif %}
- {% if craue_setting('export_xml') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'xml', 'tag' : currentTag, 'search_entry[term]' : exportSearchTerm, 'currentRoute' : previousRoute }) }}">XML</a></li>{% endif %}
- </ul>
- </aside>
-
- <!-- Filter -->
- {% if form is not null %}
- <div id="filters">
- <form method="get" action="{{ path('all') }}">
- <h2>{{ 'entry.filters.title'|trans }}</h2>
- <a href="javascript: void(null);" id="filter-form-close" class="close-button--popup close-button">×</a>
-
- <div id="filter-status" class="filter-group">
- {% if currentRoute != 'untagged' and nbEntriesUntagged != 0 %}
- <div class="">
- <a href="{{ path('untagged') }}">{{ 'tag.list.see_untagged_entries'|trans }} ({{nbEntriesUntagged}})</a>
- </div>
- {% endif %}
-
- <div class="">
- <label>{{ 'entry.filters.status_label'|trans }}</label>
- </div>
- <div class="input-field">
- {{ form_widget(form.isArchived) }}
- {{ form_label(form.isArchived) }}
- </div>
-
- <div class="input-field">
- {{ form_widget(form.isStarred) }}
- {{ form_label(form.isStarred) }}
- </div>
-
- <div class="input-field">
- {{ form_widget(form.isUnread) }}
- {{ form_label(form.isUnread) }}
- </div>
-
- <div class="input-field">
- {{ form_widget(form.previewPicture) }}
- {{ form_label(form.previewPicture) }}
- </div>
-
- <div class="input-field">
- {{ form_widget(form.isPublic) }}
- {{ form_label(form.isPublic) }}
- </div>
- </div>
-
- <div id="filter-language" class="filter-group">
- {{ form_label(form.language) }}
- <div class="input-field ">
- {{ form_widget(form.language) }}
- </div>
- </div>
-
- <div id="filter-http-status" class="filter-group">
- {{ form_label(form.httpStatus) }}
- <div class="input-field ">
- {{ form_widget(form.httpStatus) }}
- </div>
- </div>
-
- <div id="filter-reading-time" class="filter-group">
- <div class="">
- {{ form_label(form.readingTime) }}
- </div>
- <div class="input-field ">
- <label for="entry_filter_readingTime_left_number">{{ 'entry.filters.reading_time.from'|trans }}</label>
- {{ form_widget(form.readingTime.left_number, {'type': 'number'}) }}
- </div>
- <div class="input-field ">
- <label for="entry_filter_readingTime_right_number">{{ 'entry.filters.reading_time.to'|trans }}</label>
- {{ form_widget(form.readingTime.right_number, {'type': 'number'}) }}
- </div>
- </div>
-
- <div id="filter-domain-name" class="filter-group">
- {{ form_label(form.domainName) }}
- <div class="input-field ">
- {{ form_widget(form.domainName, {'type': 'text', 'attr' : {'placeholder': 'website.com'} }) }}
- </div>
- </div>
-
- <div id="filter-creation-date" class="filter-group">
- <div class="">
- {{ form_label(form.createdAt) }}
- </div>
- <div class="input-field ">
- <label for="entry_filter_createdAt_left_date" class="active">{{ 'entry.filters.created_at.from'|trans }}</label>
- {{ form_widget(form.createdAt.left_date, {'type': 'date', 'attr': {'class': 'datepicker', 'data-value': form.createdAt.left_date.vars.value} }) }}
- </div>
- <div class="input-field ">
- <label for="entry_filter_createdAt_right_date" class="active">{{ 'entry.filters.created_at.to'|trans }}</label>
- {{ form_widget(form.createdAt.right_date, {'type': 'date', 'attr': {'class': 'datepicker', 'data-value': form.createdAt.right_date.vars.value} }) }}
- </div>
- </div>
-
- <div id="filter-buttons" class="filter-group">
- <div class="">
- <a href="#!" class="center waves-effect waves-green btn-flat" id="clear_form_filters">{{ 'entry.filters.action.clear'|trans }}</a>
- </div>
-
- <button class="btn waves-effect waves-light" type="submit" id="submit-filter" value="filter">{{ 'entry.filters.action.filter'|trans }}</button>
- </div>
- </form>
- </div>
- {% endif %}
-{% endblock %}
+++ /dev/null
-{% extends "WallabagCoreBundle::layout.html.twig" %}
-
-{% block title %}{{ entry.title|e|default('entry.default_title'|trans)|raw }} ({{ entry.domainName|removeWww }}){% endblock %}
-
-{% block content %}
- <div id="article">
- <header class="mbm">
- <h1><span{% if entry.language is defined and entry.language is not null %} lang="{{ entry.getHTMLLanguage() }}"{% endif %}>{{ entry.title|e|default('entry.default_title'|trans)|raw }}</span> <a href="{{ path('edit', { 'id': entry.id }) }}" class="nostyle" title="{{ 'entry.view.edit_title'|trans }}">✎</a></h1>
- </header>
-
- <div id="article_toolbar">
- <ul class="links">
- <li class="topPosF"><a href="#top" title="{{ 'entry.view.left_menu.back_to_top'|trans }}" class="tool top icon icon-arrow-up-thick"><span>{{ 'entry.view.left_menu.set_as_read'|trans }}</span></a></li>
- <li><a href="{{ entry.url|e }}" target="_blank" rel="noopener" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|e }}" class="tool link icon icon-link original"><span>{{ entry.domainName|removeWww }}</span></a></li>
- <li><a title="{{ 'entry.view.left_menu.re_fetch_content'|trans }}" class="tool icon icon-reload" href="{{ path('reload_entry', { 'id': entry.id }) }}"><span>{{ 'entry.view.left_menu.re_fetch_content'|trans }}</span></a></li>
-
- {% set markAsReadLabel = 'entry.view.left_menu.set_as_unread' %}
- {% if entry.isArchived == 0 %}
- {% set markAsReadLabel = 'entry.view.left_menu.set_as_read' %}
- {% endif %}
-
- <li><a title="{{ markAsReadLabel|trans }}" class="tool icon icon-check {% if entry.isArchived == 0 %}archive-off{% else %}archive{% endif %} markasread" href="{{ path('archive_entry', { 'id': entry.id }) }}"><span>{{ markAsReadLabel|trans }}</span></a></li>
- <li><a title="{{ 'entry.view.left_menu.set_as_starred'|trans }}" class="tool icon icon-star {% if entry.isStarred == 0 %}fav-off{% else %}fav{% endif %} favorite" href="{{ path('star_entry', { 'id': entry.id }) }}"><span>{{ 'entry.view.left_menu.set_as_starred'|trans }}</span></a></li>
- <li><a id="nav-btn-add-tag" class="tool icon icon-price-tags" title="{{ 'entry.view.left_menu.add_a_tag'|trans }}"><span>{{ 'entry.view.left_menu.add_a_tag'|trans }}</span></a></li>
- <li><a title="{{ 'entry.view.left_menu.delete'|trans }}" onclick="return confirm('{{ 'entry.confirm.delete'|trans|escape('js') }}')" class="tool delete icon icon-trash" href="{{ path('delete_entry', { 'id': entry.id }) }}"><span>{{ 'entry.view.left_menu.delete'|trans }}</span></a></li>
- {% if craue_setting('share_public') %}
- <li><a href="{{ path('share', {'id': entry.id }) }}" target="_blank" class="tool icon icon-eye" title="{{ 'entry.view.left_menu.public_link'|trans }}"><span>{{ 'entry.view.left_menu.public_link'|trans }}</span></a></li>
- <li><a href="{{ path('delete_share', {'id': entry.id }) }}" class="tool icon icon-no-eye" title="{{ 'entry.view.left_menu.delete_public_link'|trans }}"><span>{{ 'entry.view.left_menu.delete_public_link'|trans }}</span></a></li>
- {% endif %}
- {% if craue_setting('share_twitter') %}<li><a href="https://twitter.com/share?text={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" rel="noopener" class="tool twitter icon icon-twitter" title="Tweet"><span>Tweet</span></a></li>{% endif %}
- {% if craue_setting('share_mail') %}<li><a href="mailto:?subject={{ entry.title|url_encode }}&body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email icon icon-mail" title="Email"><span>Email</span></a></li>{% endif %}
- {% if craue_setting('share_shaarli') %}<li><a href="{{ craue_setting('shaarli_url') }}/index.php?post={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}&tags={{ entry.tags|join(',')|url_encode }}{% if craue_setting('shaarli_share_origin_url') %}&original_url={{ entry.originUrl|url_encode }}{% endif %}" target="_blank" rel="noopener" class="tool icon-image icon-image--shaarli" title="shaarli"><span>shaarli</span></a></li>{% endif %}
- {% if craue_setting('share_scuttle') %}<li><a href="{{ craue_setting('scuttle_url') }}/bookmarks.php?action=add&address={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}&tags={{ entry.tags|join(',')|url_encode }}" target="_blank" rel="noopener" class="tool icon-image icon-image--scuttle" title="scuttle"><span>scuttle</span></a></li>{% endif %}
- {% if craue_setting('share_diaspora') %}<li><a href="{{ craue_setting('diaspora_url') }}/bookmarklet?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}¬es=&v=1&noui=1&jump=doclose" target="_blank" rel="noopener" class="tool diaspora icon-image icon-image--diaspora" title="diaspora"><span>diaspora</span></a></li>{% endif %}
- {% if craue_setting('share_unmark') %}<li><a href="{{ craue_setting('unmark_url') }}/mark/add?url={{ entry.url|url_encode }}&title={{entry.title|url_encode}}&v=6" target="_blank" rel="noopener" class="tool unmark icon-image icon-image--unmark" title="unmark"><span>unmark.it</span></a></li>{% endif %}
- {% if craue_setting('carrot') %}<li><a href="https://secure.carrot.org/GiveAndGetBack.do?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" class="tool carrot icon-image icon-image--carrot" target="_blank" rel="noopener" title="carrot"><span>Carrot</span></a></li>{% endif %}
- {% if craue_setting('show_printlink') %}<li><a title="{{ 'entry.view.left_menu.print'|trans }}" class="tool icon icon-print" href="javascript: window.print();"><span>{{ 'entry.view.left_menu.print'|trans }}</span></a></li>{% endif %}
- {% if craue_setting('export_epub') %}<li><a href="{{ path('export_entry', { 'id': entry.id, 'format': 'epub' }) }}" title="Generate ePub file">EPUB</a></li>{% endif %}
- {% if craue_setting('export_mobi') %}<li><a href="{{ path('export_entry', { 'id': entry.id, 'format': 'mobi' }) }}" title="Generate Mobi file">MOBI</a></li>{% endif %}
- {% if craue_setting('export_pdf') %}<li><a href="{{ path('export_entry', { 'id': entry.id, 'format': 'pdf' }) }}" title="Generate PDF file">PDF</a></li>{% endif %}
- <li><a href="mailto:siteconfig@wallabag.org?subject=Wrong%20display%20in%20wallabag&body={{ entry.url|url_encode }}" title="{{ 'entry.view.left_menu.problem.label'|trans }}" class="tool bad-display icon icon-delete"><span>{{ 'entry.view.left_menu.problem.label'|trans }}</span></a></li>
- </ul>
- </div>
-
- <div id="article-informations">
- <i class="tool icon icon-calendar" title="{{ 'entry.view.created_at'|trans }}">
- {{ entry.createdAt|date('Y-m-d H:i') }}
- </i>
-
- {% if entry.publishedAt is not null %}
- <i class="tool icon icon-pencil2" title="{{ 'entry.view.published_at'|trans }}">
- {{ entry.publishedAt|date('Y-m-d H:i') }}
- </i>
- {% endif %}
-
- {% if entry.publishedBy is not empty %}
- <i class="tool icon icon-users" title="{{ 'entry.view.published_by'|trans }}">
- {% for author in entry.publishedBy %}
- {{ author }}{% if not loop.last %}, {% endif %}
- {% endfor %}
- </i>
- {% endif %}
-
- <i class="tool icon icon-time">
- {% set readingTime = entry.readingTime / app.user.config.readingSpeed * 200 %}
- {% if readingTime > 0 %}
- {{ 'entry.list.reading_time_minutes_short'|trans({'%readingTime%': readingTime|round}) }}
- {% else %}
- {{ 'entry.list.reading_time_less_one_minute_short'|trans|raw }}
- {% endif %}
- </i>
-
- <span class="tool link"><i class="material-icons">comment</i> {{ 'entry.view.annotations_on_the_entry'|transchoice(entry.annotations | length) }}</span>
-
- {% if entry.originUrl is not empty %}
- <i class="material-icons" title="{{ 'entry.view.provided_by'|trans }}">launch</i>
- <a href="{{ entry.originUrl|e }}" target="_blank" rel="noopener" class="tool">
- {{ entry.originUrl|striptags|removeSchemeAndWww|truncate(32) }}
- </a>
- {% endif %}
-
- <aside class="tags">
- <div class="card-entry-tags">
- {% for tag in entry.tags %}
- <span class="label-outline">
- <i class="material-icons">label_outline</i>
- <a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a>
- <a href="{{ path('remove_tag', { 'entry': entry.id, 'tag': tag.id }) }}" onclick="return confirm('{{ 'entry.confirm.delete_tag'|trans|escape('js') }}')" class="nostyle">
- <i>✘</i>
- </a>
- </span>
- {% endfor %}
- </div>
- <div class="input-field baggy-add-tag" style="display: none">
- {{ render(controller( "WallabagCoreBundle:Tag:addTagForm", { 'id': entry.id } )) }}
- </div>
- </aside>
- </div>
- <article{% if entry.language is defined and entry.language is not null %} lang="{{ entry.getHTMLLanguage() }}"{% endif %}>
- {{ entry.content | raw }}
- </article>
- </div>
-
- <script id="annotationroutes" type="application/json">
- {
- "prefix": "",
- "urls": {
- "create": "{{ path('annotations_post_annotation', { 'entry': entry.id }) }}",
- "update": "{{ path('annotations_put_annotation', { 'annotation': 'idAnnotation' }) }}",
- "destroy": "{{ path('annotations_delete_annotation', { 'annotation': 'idAnnotation' }) }}",
- "search": "{{ path('annotations_get_annotations', { 'entry': entry.id }) }}"
- },
- "entryId": "{{ entry.id }}"
- }
- </script>
-{% endblock %}
+++ /dev/null
-{% extends "WallabagCoreBundle::layout.html.twig" %}
-
-{% block title %}{{ 'entry.new.page_title'|trans }}{% endblock %}
-
-{% block content %}
- {{ render(controller( "WallabagCoreBundle:Entry:addEntryForm" )) }}
-{% endblock %}
+++ /dev/null
-<form name="entry" method="post" action="{{ path('new_entry')}}">
- {% if form_errors(form) %}
- <span class="black-text">{{ form_errors(form) }}</span>
- {% endif %}
-
- {% if form_errors(form.url) %}
- <span class="black-text">{{ form_errors(form.url) }}</span>
- {% endif %}
-
- {{ form_label(form.url) }}
- {{ form_widget(form.url, { 'attr': {'autocomplete': 'off', 'placeholder': 'entry.new.placeholder'} }) }}
-
- {{ form_rest(form) }}
-</form>
+++ /dev/null
-<form name="search" method="GET" action="{{ path('search')}}">
- <h2>{{ 'menu.left.search'|trans }}</h2>
- <a href="javascript: void(null);" id="search-form-close" class="close-button--popup close-button">×</a>
- {% if form_errors(form) %}
- <span class="black-text">{{ form_errors(form) }}</span>
- {% endif %}
-
- {% if form_errors(form.term) %}
- <span class="black-text">{{ form_errors(form.term) }}</span>
- {% endif %}
-
- <input type="hidden" name="currentRoute" value="{{ currentRoute }}" />
-
- {{ form_widget(form.term, { 'attr': {'autocomplete': 'off', 'placeholder': 'entry.search.placeholder'} }) }}
-
- {{ form_rest(form) }}
-</form>
+++ /dev/null
-{% extends "WallabagCoreBundle::layout.html.twig" %}
-
-{% block title %}{{ 'error.page_title'|trans }}{% endblock %}
-
-{% block body_class %}login{% endblock %}
-
-{% block menu %}{% endblock %}
-{% block messages %}{% endblock %}
-{% block header %}{% endblock %}
-
-{% block content %}
-<main class="valign-wrapper">
- <div class="valign row">
- <div class="card sw">
- <div class="center"><img src="{{ asset('wallassets/themes/_global/img/logo-w.png') }}" alt="wallabag logo" /></div>
- <h2>{{ status_code }}: {{ status_text }}</h2>
- <p>{{ exception.message }}</p>
- </div>
- </div>
-</main>
-{% endblock %}
-
-{% block footer %}
-{% endblock %}
+++ /dev/null
-Hello {{username}}!
-
-To reset your password - please visit {{confirmationUrl}}
-
-Regards,
-Wallabag bot
+++ /dev/null
-# Baggy Theme
-
-theme created by Thomas LEBEAU alias Courgette http://thomaslebeau.fr/
+++ /dev/null
-{% extends "WallabagCoreBundle::layout.html.twig" %}
-
-{% block title %}{{ 'site_credential.page_title'|trans }}{% endblock %}
-
-{% block content %}
-
- <div class="row">
- <div class="col s12">
- <div class="card-panel">
- <div class="row">
- <div class="input-field col s12">
- <h4>{{ 'site_credential.edit_site_credential'|trans }}</h4>
-
- <div id="set6" class="col s12">
- {{ form_start(edit_form) }}
- {{ form_errors(edit_form) }}
-
- <div class="row">
- <div class="input-field col s12">
- {{ form_label(edit_form.host) }}
- {{ form_errors(edit_form.host) }}
- {{ form_widget(edit_form.host) }}
- </div>
- </div>
-
- <div class="row">
- <div class="input-field col s12">
- {{ form_label(edit_form.username) }}
- {{ form_errors(edit_form.username) }}
- {{ form_widget(edit_form.username) }}
- </div>
- </div>
-
- <div class="row">
- <div class="input-field col s12">
- {{ form_label(edit_form.password) }}
- {{ form_errors(edit_form.password) }}
- {{ form_widget(edit_form.password) }}
- </div>
- </div>
-
- <br/>
-
- {{ form_widget(edit_form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
- {{ form_widget(edit_form._token) }}
- </form>
- <p>
- {{ form_start(delete_form) }}
- <button onclick="return confirm('{{ 'site_credential.form.delete_confirm'|trans|escape('js') }}')" type="submit" class="btn waves-effect waves-light red">{{ 'site_credential.form.delete'|trans }}</button>
- {{ form_end(delete_form) }}
- </p>
- <p><a class="waves-effect waves-light btn blue-grey" href="{{ path('site_credentials_index') }}">{{ 'site_credential.form.back_to_list'|trans }}</a></p>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
-
-{% endblock %}
+++ /dev/null
-{% extends "WallabagCoreBundle::layout.html.twig" %}
-
-{% block title %}{{ 'site_credential.page_title'|trans }}{% endblock %}
-
-{% block content %}
-
- <div class="row">
- <div class="col s12">
- <div class="card-panel">
- <div class="row">
- <div class="input-field col s12">
- <p class="help">{{ 'site_credential.description'|trans|raw }}</p>
-
- <table class="bordered">
- <thead>
- <tr>
- <th>{{ 'site_credential.form.host_label'|trans }}</th>
- <th>{{ 'site_credential.list.actions'|trans }}</th>
- </tr>
- </thead>
- <tbody>
- {% for credential in credentials %}
- <tr>
- <td>{{ credential.host }}</td>
- <td>
- <a href="{{ path('site_credentials_edit', { 'id': credential.id }) }}">{{ 'site_credential.list.edit_action'|trans }}</a>
- </td>
- </tr>
- {% endfor %}
- </tbody>
- </table>
- <br />
- <p>
- <a href="{{ path('site_credentials_new') }}" class="waves-effect waves-light btn">{{ 'site_credential.list.create_new_one'|trans }}</a>
- </p>
- </div>
- </div>
- </div>
- </div>
- </div>
-
-{% endblock %}
+++ /dev/null
-{% extends "WallabagCoreBundle::layout.html.twig" %}
-
-{% block title %}{{ 'site_credential.page_title'|trans }}{% endblock %}
-
-{% block content %}
-
- <div class="row">
- <div class="col s12">
- <div class="card-panel">
- <div class="row">
- <div class="input-field col s12">
- <h4>{{ 'site_credential.new_site_credential'|trans }}</h4>
-
- <div id="set6" class="col s12">
- {{ form_start(form) }}
- {{ form_errors(form) }}
-
- <div class="row">
- <div class="input-field col s12">
- {{ form_label(form.host) }}
- {{ form_errors(form.host) }}
- {{ form_widget(form.host) }}
- </div>
- </div>
-
- <div class="row">
- <div class="input-field col s12">
- {{ form_label(form.username) }}
- {{ form_errors(form.username) }}
- {{ form_widget(form.username) }}
- </div>
- </div>
-
- <div class="row">
- <div class="input-field col s12">
- {{ form_label(form.password) }}
- {{ form_errors(form.password) }}
- {{ form_widget(form.password) }}
- </div>
- </div>
-
- {{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
- {{ form_rest(form) }}
- </form>
- <p><a class="waves-effect waves-light btn blue-grey" href="{{ path('site_credentials_index') }}">{{ 'site_credential.form.back_to_list'|trans }}</a></p>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
-
-{% endblock %}
+++ /dev/null
-<form name="tag" method="post" action="{{ path('new_tag', { 'entry': entry.id })}}">
- {% if form_errors(form) %}
- <span class="black-text">{{ form_errors(form) }}</span>
- {% endif %}
-
- {% if form_errors(form.label) %}
- <span class="black-text">{{ form_errors(form.label) }}</span>
- {% endif %}
-
- {{ form_widget(form.label, { 'attr': {'autocomplete': 'off'} }) }}
-
- {{ form_rest(form) }}
-</form>
+++ /dev/null
-{% extends "WallabagCoreBundle::layout.html.twig" %}
-
-{% block title %}{{ 'tag.page_title'|trans }}{% endblock %}
-
-{% block content %}
- <div class="results">
- <div class="nb-results">{{ 'tag.list.number_on_the_page'|transchoice(tags|length) }}</div>
- </div>
-
- <ul>
- {% for tag in tags %}
- <li id="tag-{{ tag.id|e }}">
- <a href="{{ path('tag_entries', {'slug': tag.slug}) }}" data-handle="tag-link">{{ tag.label }} ({{ tag.nbEntries }})</a>
-
- {% if renameForms is defined and renameForms[tag.id] is defined %}
- <form class="card-tag-form hidden" data-handle="tag-rename-form" action="{{ path('tag_rename', {'slug': tag.slug})}}" method="POST">
- {{ form_widget(renameForms[tag.id].label, {'attr': {'value': tag.label}}) }}
- {{ form_rest(renameForms[tag.id]) }}
- </form>
- <a class="card-tag-rename" data-handler="tag-rename" href="javascript:void(0);">
- <i class="material-icons">mode_edit</i>
- </a>
- {% endif %}
- {% if app.user.config.feedToken %}
- <a rel="alternate" type="application/atom+xml" href="{{ path('tag_feed', {'username': app.user.username, 'token': app.user.config.feedToken, 'slug': tag.slug}) }}" class="right">
- <i class="material-icons md-24">rss_feed</i>
- </a>
- {% endif %}
- </li>
- {% endfor %}
- </ul>
-
- <div>
- {% if nbEntriesUntagged == 0 %}
- {{ 'tag.list.no_untagged_entries'|trans }}
- {% else %}
- <a href="{{ path('untagged') }}">{{ 'tag.list.see_untagged_entries'|trans }} ({{nbEntriesUntagged}})</a>
- {% endif %}
- </div>
-{% endblock %}
+++ /dev/null
-{% extends "WallabagCoreBundle::base.html.twig" %}
-
-{% block css %}
- {{ parent() }}
- {% if not app.debug %}
- <link rel="stylesheet" href="{{ asset('wallassets/baggy.css') }}">
- {% endif %}
-{% endblock %}
-
-{% block scripts %}
- {{ parent() }}
- <script src="{{ asset('wallassets/baggy' ~ (app.debug ? '.dev' : '') ~ '.js') }}"></script>
-{% endblock %}
-
-{% block header %}
- <header class="w600p center mbm">
- <h1 class="logo">
- {% block logo %}
- <a title="{{ 'menu.left.back_to_unread'|trans }}" href="{{ path('unread') }}">
- <img width="100" height="100" src="{{ asset('wallassets/themes/_global/img/logo-w.png') }}" alt="wallabag logo" />
- </a>
- {% endblock %}
- </h1>
- </header>
-{% endblock %}
-
-{% block menu %}
- <button id="menu" class="icon icon-menu desktopHide"><span>Menu</span></button>
- <ul id="links" class="links">
- <li class="menu unread"><a href="{{ path('unread') }}">{{ 'menu.left.unread'|trans }}</a></li>
- <li class="menu starred"><a href="{{ path('starred') }}">{{ 'menu.left.starred'|trans }}</a></li>
- <li class="menu archive"><a href="{{ path('archive') }}">{{ 'menu.left.archive'|trans }}</a></li>
- <li class="menu all"><a href="{{ path('all') }}">{{ 'menu.left.all_articles'|trans }}</a></li>
- <li class="menu tag"><a href="{{ path('tag') }}">{{ 'menu.left.tags'|trans }}</a></li>
- <li class="menu new"><a href="{{ path('new') }}">{{ 'menu.left.save_link'|trans }}</a></li>
- <li style="position: relative;"><a href="javascript: void(null);" id="search">{{ 'menu.left.search'|trans }}</a>
- <div id="search-form" class="messages info popup-form">
- {{ render(controller("WallabagCoreBundle:Entry:searchForm", {'currentRoute': app.request.attributes.get('_route')})) }}
- </div>
- </li>
- {% if craue_setting('restricted_access') %}
- <li class="menu site_credentials"><a href="{{ path('site_credentials_index') }}">{{ 'menu.left.site_credentials'|trans }}</a></li>
- {% endif %}
- <li class="menu config"><a href="{{ path('config') }}">{{ 'menu.left.config'|trans }}</a></li>
- {% if is_granted('ROLE_SUPER_ADMIN') %}
- <li class="menu users"><a href="{{ path('user_index') }}">{{ 'menu.left.users_management'|trans }}</a></li>
- <li class="menu internal"><a href="{{ path('craue_config_settings_modify') }}">{{ 'menu.left.internal_settings'|trans }}</a></li>
- {% endif %}
- <li class="menu import"><a href="{{ path('import') }}">{{ 'menu.left.import'|trans }}</a></li>
- <li class="menu howto"><a href="{{ path('howto') }}">{{ 'menu.left.howto'|trans }}</a></li>
- <li class="menu developer"><a href="{{ path('developer') }}">{{ 'menu.left.developer'|trans }}</a></li>
- <li class="menu about"><a href="{{ path('about') }}">{{ 'footer.wallabag.about'|trans }}</a></li>
- <li class="menu quickstart"><a href="{{ path('quickstart') }}">{{ 'menu.left.quickstart'|trans }}</a></li>
- <li class="menu logout"><a class="icon icon-power" href="{{ path('fos_user_security_logout') }}">{{ 'menu.left.logout'|trans }}</a></li>
- </ul>
-{% endblock %}
-
-{% block messages %}
- {% for flashMessage in app.session.flashbag.get('notice') %}
- <div class="messages success">
- <a href="#" class="closeMessage">×</a>
- <p>{{ flashMessage|trans }}</p>
- </div>
- {% endfor %}
-{% endblock %}
-
-{% block footer %}
- <footer class="w600p center mt3 mb3 smaller txtright">
- <p>{{ 'footer.wallabag.powered_by'|trans }} <a href="http://wallabag.org">wallabag</a></p>
- </footer>
-{% endblock %}
« {{ tagging_rule.rule }} »
{{ 'config.form_rules.then_tag_as_label'|trans }}
« {{ tagging_rule.tags|join(', ') }} »
- <a href="{{ path('edit_tagging_rule', {id: tagging_rule.id}) }}" title="{{ 'config.form_rules.edit_rule_label'|trans }}">
+ <a class="edit-rule" href="{{ path('edit_tagging_rule', {id: tagging_rule.id}) }}" title="{{ 'config.form_rules.edit_rule_label'|trans }}">
<i class="tool grey-text mode_edit material-icons">mode_edit</i>
</a>
- <a href="{{ path('delete_tagging_rule', {id: tagging_rule.id}) }}" title="{{ 'config.form_rules.delete_rule_label'|trans }}">
+ <a class="delete-rule" href="{{ path('delete_tagging_rule', {id: tagging_rule.id}) }}" title="{{ 'config.form_rules.delete_rule_label'|trans }}">
<i class="tool grey-text delete material-icons">delete</i>
</a>
</li>
$form = $crawler->filter('button[id=config_save]')->form();
$data = [
- 'config[theme]' => 'baggy',
+ 'config[theme]' => 'material',
'config[items_per_page]' => '30',
'config[reading_speed]' => '100',
'config[action_mark_as_read]' => '0',
public function testChangeReadingSpeed()
{
$this->logInAs('admin');
- $this->useTheme('baggy');
$client = $this->getClient();
$entry = new Entry($this->getLoggedInUser());
{
return [
[[
- 'config[theme]' => 'baggy',
+ 'config[theme]' => 'material',
'config[items_per_page]' => '',
'config[language]' => 'en',
]],
public function testTaggingRuleCreation()
{
$this->logInAs('admin');
- $this->useTheme('baggy');
$client = $this->getClient();
$crawler = $client->request('GET', '/config');
$this->assertContains('flashes.config.notice.tagging_rules_updated', $crawler->filter('body')->extract(['_text'])[0]);
- $editLink = $crawler->filter('.mode_edit')->last()->link();
+ $editLink = $crawler->filter('.edit-rule')->last()->link();
$crawler = $client->click($editLink);
$this->assertSame(302, $client->getResponse()->getStatusCode());
$this->assertContains('readingTime <= 30', $crawler->filter('body')->extract(['_text'])[0]);
- $deleteLink = $crawler->filter('.delete')->last()->link();
+ $deleteLink = $crawler->filter('.delete-rule')->last()->link();
$crawler = $client->click($deleteLink);
$this->assertSame(302, $client->getResponse()->getStatusCode());
public function testSwitchViewMode()
{
$this->logInAs('admin');
- $this->useTheme('baggy');
$client = $this->getClient();
$client->request('GET', '/unread/list');
- $this->assertNotContains('listmode', $client->getResponse()->getContent());
+ $this->assertNotContains('collection', $client->getResponse()->getContent());
$client->request('GET', '/config/view-mode');
$crawler = $client->followRedirect();
$client->request('GET', '/unread/list');
- $this->assertContains('listmode', $client->getResponse()->getContent());
+ $this->assertContains('collection', $client->getResponse()->getContent());
$client->request('GET', '/config/view-mode');
}
$this->assertContains('entry.list.number_on_the_page', $body[0]);
}
- public function testGetNew()
- {
- $this->logInAs('admin');
- $this->useTheme('baggy');
- $client = $this->getClient();
-
- $crawler = $client->request('GET', '/new');
-
- $this->assertSame(200, $client->getResponse()->getStatusCode());
-
- $this->assertCount(1, $crawler->filter('input[type=url]'));
- $this->assertCount(1, $crawler->filter('form[name=entry]'));
- }
-
public function testPostNewViaBookmarklet()
{
$this->logInAs('admin');
$this->listener = new CreateConfigListener(
$this->em,
- 'baggy',
+ 'material',
20,
50,
'fr',
);
$config = new Config($user);
- $config->setTheme('baggy');
+ $config->setTheme('material');
$config->setItemsPerPage(20);
$config->setFeedLimit(50);
$config->setLanguage('fr');