aboutsummaryrefslogtreecommitdiffhomepage
path: root/themes/default
diff options
context:
space:
mode:
Diffstat (limited to 'themes/default')
m---------themes0
-rw-r--r--themes/default/_bookmarklet.twig3
-rw-r--r--themes/default/_footer.twig4
-rw-r--r--themes/default/_head.twig11
-rw-r--r--themes/default/_menu.twig7
-rw-r--r--themes/default/_messages.twig1
-rw-r--r--themes/default/_top.twig7
-rw-r--r--themes/default/config.twig80
-rw-r--r--themes/default/css/knacss.css1
-rw-r--r--themes/default/css/messages.css75
-rw-r--r--themes/default/css/print.css48
-rw-r--r--themes/default/css/style-default.css55
-rw-r--r--themes/default/css/style.css321
-rw-r--r--themes/default/error.twig6
-rw-r--r--themes/default/export.twig1
-rw-r--r--themes/default/home.twig49
-rw-r--r--themes/default/img/apple-touch-icon-144x144-precomposed.pngbin0 -> 7349 bytes
-rw-r--r--themes/default/img/apple-touch-icon-72x72-precomposed.pngbin0 -> 6168 bytes
-rw-r--r--themes/default/img/apple-touch-icon.pngbin0 -> 5803 bytes
-rw-r--r--themes/default/img/default/backtotop.pngbin0 -> 326 bytes
-rwxr-xr-xthemes/default/img/default/bad-display.pngbin0 -> 343 bytes
-rw-r--r--themes/default/img/default/checkmark-off.pngbin0 -> 277 bytes
-rw-r--r--themes/default/img/default/checkmark-on.pngbin0 -> 235 bytes
-rw-r--r--themes/default/img/default/down.pngbin0 -> 216 bytes
-rw-r--r--themes/default/img/default/envelop.pngbin0 -> 285 bytes
-rwxr-xr-xthemes/default/img/default/flattr.pngbin0 -> 270 bytes
-rw-r--r--themes/default/img/default/left.pngbin0 -> 196 bytes
-rwxr-xr-xthemes/default/img/default/link.pngbin0 -> 341 bytes
-rw-r--r--themes/default/img/default/remove.pngbin0 -> 252 bytes
-rw-r--r--themes/default/img/default/shaarli.pngbin0 -> 729 bytes
-rw-r--r--themes/default/img/default/star-off.pngbin0 -> 314 bytes
-rw-r--r--themes/default/img/default/star-on.pngbin0 -> 281 bytes
-rw-r--r--themes/default/img/default/top.pngbin0 -> 212 bytes
-rw-r--r--themes/default/img/default/twitter.pngbin0 -> 297 bytes
-rw-r--r--themes/default/img/favicon.icobin0 -> 346 bytes
-rw-r--r--themes/default/img/logo.pngbin0 -> 1350 bytes
-rw-r--r--themes/default/img/messages/close.pngbin0 -> 662 bytes
-rw-r--r--themes/default/img/messages/cross.pngbin0 -> 655 bytes
-rw-r--r--themes/default/img/messages/help.pngbin0 -> 786 bytes
-rw-r--r--themes/default/img/messages/tick.pngbin0 -> 537 bytes
-rw-r--r--themes/default/img/messages/warning.pngbin0 -> 666 bytes
-rw-r--r--themes/default/install.twig28
-rw-r--r--themes/default/js/restoreScroll.js25
-rw-r--r--themes/default/layout.twig31
-rw-r--r--themes/default/login.twig32
-rw-r--r--themes/default/view.twig51
46 files changed, 836 insertions, 0 deletions
diff --git a/themes b/themes
deleted file mode 160000
Subproject 689dcedf8d6c7cf5e8424654fef4fd9687288dc
diff --git a/themes/default/_bookmarklet.twig b/themes/default/_bookmarklet.twig
new file mode 100644
index 00000000..2f3b2d16
--- /dev/null
+++ b/themes/default/_bookmarklet.twig
@@ -0,0 +1,3 @@
1 <script type="text/javascript">
2 top["bookmarklet-url@inthepoche.com"]=""+"<!DOCTYPE html>"+"<html>"+"<head>"+"<title>poche it !</title>"+'<link rel="icon" href="{{poche_url}}tpl/img/favicon.ico" />'+"</head>"+"<body>"+"<script>"+"window.onload=function(){"+"window.setTimeout(function(){"+"history.back();"+"},250);"+"};"+"</scr"+"ipt>"+"</body>"+"</html>"
3 </script> \ No newline at end of file
diff --git a/themes/default/_footer.twig b/themes/default/_footer.twig
new file mode 100644
index 00000000..2b895854
--- /dev/null
+++ b/themes/default/_footer.twig
@@ -0,0 +1,4 @@
1 <footer class="w600p center mt3 mb3 smaller txtright">
2 <p>{% trans "powered by" %} <a href="http://inthepoche.com">poche</a></p>
3 {% if constant('DEBUG_POCHE') == 1 %}<p><strong>{% trans "debug mode is on so cache is off." %} {% trans "your poche version:" %}{{constant('POCHE_VERSION')}}. {% trans "storage:" %} {{constant('STORAGE')}}</strong></p>{% endif %}
4 </footer> \ No newline at end of file
diff --git a/themes/default/_head.twig b/themes/default/_head.twig
new file mode 100644
index 00000000..2b9e4582
--- /dev/null
+++ b/themes/default/_head.twig
@@ -0,0 +1,11 @@
1 <link rel="shortcut icon" type="image/x-icon" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/img/favicon.ico" />
2 <link rel="apple-touch-icon-precomposed" sizes="144x144" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/img/apple-touch-icon-144x144-precomposed.png">
3 <link rel="apple-touch-icon-precomposed" sizes="72x72" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/img/apple-touch-icon-72x72-precomposed.png">
4 <link rel="apple-touch-icon-precomposed" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/img/apple-touch-icon-precomposed.png">
5 <link rel="stylesheet" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/css/knacss.css" media="all">
6 <link rel="stylesheet" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/css/style.css" media="all">
7 <link rel="stylesheet" href="{{ poche_url }}/themes/{{ theme }}/css/style-{{ theme }}.css" media="all" title="{{ theme }} theme">
8 <link rel="stylesheet" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/css/messages.css" media="all">
9 <link rel="stylesheet" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/css/print.css" media="print">
10 <link href='//fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'>
11 <script src="//codeorigin.jquery.com/jquery-2.0.3.min.js"></script> \ No newline at end of file
diff --git a/themes/default/_menu.twig b/themes/default/_menu.twig
new file mode 100644
index 00000000..699d6a0c
--- /dev/null
+++ b/themes/default/_menu.twig
@@ -0,0 +1,7 @@
1 <ul id="links">
2 <li><a href="./" {% if view == 'home' %}class="current"{% endif %}>{% trans "home" %}</a></li>
3 <li><a href="./?view=fav" {% if view == 'fav' %}class="current"{% endif %}>{% trans "favorites" %}</a></li>
4 <li><a href="./?view=archive" {% if view == 'archive' %}class="current"{% endif %}>{% trans "archive" %}</a></li>
5 <li><a href="./?view=config" {% if view == 'config' %}class="current"{% endif %}>{% trans "config" %}</a></li>
6 <li><a href="./?logout" title="{% trans "logout" %}">{% trans "logout" %}</a></li>
7 </ul> \ No newline at end of file
diff --git a/themes/default/_messages.twig b/themes/default/_messages.twig
new file mode 100644
index 00000000..679aa098
--- /dev/null
+++ b/themes/default/_messages.twig
@@ -0,0 +1 @@
{{ messages | raw }} \ No newline at end of file
diff --git a/themes/default/_top.twig b/themes/default/_top.twig
new file mode 100644
index 00000000..4100f7c4
--- /dev/null
+++ b/themes/default/_top.twig
@@ -0,0 +1,7 @@
1 <header class="w600p center mbm">
2 <h1>
3 {% if view == 'home' %}{% block logo %}<img src="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/img/logo.png" alt="logo poche" />{% endblock %}
4 {% else %}<a href="./" title="{% trans "back to home" %}" >{{ block('logo') }}</a>
5 {% endif %}
6 </h1>
7 </header> \ No newline at end of file
diff --git a/themes/default/config.twig b/themes/default/config.twig
new file mode 100644
index 00000000..e849d03b
--- /dev/null
+++ b/themes/default/config.twig
@@ -0,0 +1,80 @@
1{% extends "layout.twig" %}
2
3{% block title %}{% trans "config" %}{% endblock %}
4{% block menu %}
5{% include '_menu.twig' %}
6{% endblock %}
7{% block content %}
8 <h2>{% trans "Poching a link" %}</h2>
9 <p>{% trans "You can poche a link by several methods:" %} (<a href="http://inthepoche.com/doc" title="{% trans "read the documentation" %}">?</a>)</p>
10 <ul>
11 <li>firefox: <a href="https://bitbucket.org/jogaulupeau/poche/downloads/poche.xpi" title="download the firefox extension">{% trans "download the extension" %}</a></li>
12 <li>chrome: <a href="https://bitbucket.org/jogaulupeau/poche/downloads/poche.crx" title="download the chrome extension">{% trans "download the extension" %}</a></li>
13 <li>android: <a href="https://bitbucket.org/jogaulupeau/poche/downloads/Poche.apk" title="download the application">{% trans "download the application" %}</a></li>
14 <li>
15 <form method="get" action="index.php">
16 <label class="addurl" for="plainurl">{% trans "by filling this field" %}:</label>
17 <input required placeholder="Ex:mywebsite.com/article" class="addurl" id="plainurl" name="plainurl" type="url" />
18 <input type="submit" value="{% trans "poche it!" %}" />
19 </form>
20 </li>
21 <li>{% trans "bookmarklet: drag & drop this link to your bookmarks bar" %} <a id="bookmarklet" ondragend="this.click();" title="i am a bookmarklet, use me !" href="javascript:if(top['bookmarklet-url@inthepoche.com']){top['bookmarklet-url@inthepoche.com'];}else{(function(){var%20url%20=%20location.href%20||%20url;window.open('{{ poche_url }}?action=add&url='%20+%20btoa(url),'_self');})();void(0);}">{% trans "poche it!" %}</a></li>
22 </ul>
23
24 <h2>{% trans "Updating poche" %}</h2>
25 <ul>
26 <li>{% trans "your version" %} : <strong>{{ constant('POCHE_VERSION') }}</strong></li>
27 <li>{% trans "latest stable version" %} : {{ prod }}. {% if compare_prod == -1 %}<strong><a href="http://inthepoche.com/">{% trans "a more recent stable version is available." %}</a></strong>{% else %}{% trans "you are up to date." %}{% endif %}</li>
28 {% if constant('DEBUG_POCHE') == 1 %}<li>{% trans "latest dev version" %} : {{ dev }}. {% if compare_dev == -1 %}<strong><a href="http://inthepoche.com/">{% trans "a more recent development version is available." %}</a></strong>{% else %}{% trans "you are up to date." %}{% endif %}</li>{% endif %}
29 </ul>
30
31 <h2>{% trans "Change your theme" %}</h2>
32 <form method="post" action="?updatetheme" name="changethemeform">
33 <fieldset class="w500p">
34 <div class="row">
35 <label class="col w150p" for="theme">{% trans "Theme:" %}</label>
36 <select class="col" id="theme" name="theme">
37 {% for theme in themes %}
38 <option value="{{ theme.name }}" {{ theme.current ? 'selected' : '' }}>{{ theme.name }}</option>
39 {% endfor %}
40 </select>
41 </div>
42 <div class="row mts txtcenter">
43 <button class="bouton" type="submit" tabindex="4">{% trans "Update" %}</button>
44 </div>
45 </fieldset>
46 <input type="hidden" name="returnurl" value="{{ referer }}">
47 <input type="hidden" name="token" value="{{ token }}">
48 </form>
49
50 <h2>{% trans "Change your password" %}</h2>
51 <form method="post" action="?config" name="loginform">
52 <fieldset class="w500p">
53 <div class="row">
54 <label class="col w150p" for="password">{% trans "New password:" %}</label>
55 <input class="col" type="password" id="password" name="password" placeholder="{% trans "Password" %}" tabindex="2">
56 </div>
57 <div class="row">
58 <label class="col w150p" for="password_repeat">{% trans "Repeat your new password:" %}</label>
59 <input class="col" type="password" id="password_repeat" name="password_repeat" placeholder="{% trans "Password" %}" tabindex="3">
60 </div>
61 <div class="row mts txtcenter">
62 <button class="bouton" type="submit" tabindex="4">{% trans "Update" %}</button>
63 </div>
64 </fieldset>
65 <input type="hidden" name="returnurl" value="{{ referer }}">
66 <input type="hidden" name="token" value="{{ token }}">
67 </form>
68
69 <h2>{% trans "Import" %}</h2>
70 <p>{% trans "Please execute the import script locally, it can take a very long time." %}</p>
71 <p>{% trans "More infos in the official doc:" %} <a href="http://inthepoche.com/doc">inthepoche.com</a></p>
72 <ul>
73 <li><a href="./?import&amp;from=pocket">{% trans "import from Pocket" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('POCKET_FILE')) }}</li>
74 <li><a href="./?import&amp;from=readability">{% trans "import from Readability" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('READABILITY_FILE')) }}</li>
75 <li><a href="./?import&amp;from=instapaper">{% trans "import from Instapaper" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('INSTAPAPER_FILE')) }}</li>
76 </ul>
77
78 <h2>{% trans "Export your poche datas" %}</h2>
79 <p><a href="./dl/export_poche.json">{% trans "Click here" %}</a> {% trans "to export your poche datas." %}</p>
80{% endblock %} \ No newline at end of file
diff --git a/themes/default/css/knacss.css b/themes/default/css/knacss.css
new file mode 100644
index 00000000..ca0696b7
--- /dev/null
+++ b/themes/default/css/knacss.css
@@ -0,0 +1 @@
html{font-size:62.5%}body{font-family:"Century Gothic",helvetica,arial,sans-serif;font-size:1.4em;line-height:1.5;color:#000;background-color:#FFF}p,ul,ol,dl,blockquote,pre,td,th,label,textarea,caption,details,figure,hgroup{margin:.75em 0 0;font-size:1em;line-height:1.5}h1,.h1-like{margin:.8077em 0 0 0;font-size:1.8571em;font-weight:normal;line-height:1.6154em}h2,.h2-like{margin:.875em 0 0 0;font-size:1.7143em;font-weight:normal;line-height:1.75em}h3,.h3-like{margin:.9545em 0 0 0;font-size:1.5714em;font-weight:normal;line-height:1.909em}h4,.h4-like{margin:1.05em 0 0 0;font-size:1.4286em;font-weight:normal;line-height:1.05em}h5,.h5-like{margin:1.1667em 0 0 0;font-size:1.2857em;font-weight:normal;line-height:1.1667em}h6,.h6-like{margin:1.3125em 0 0 0;font-size:1.1429em;font-weight:normal;line-height:1.3125em}.smaller{font-size:.7143em}.small{font-size:.8571em}.big{font-size:1.1429em}.bigger{font-size:1.2857em}.biggest{font-size:1.4286em}html,body,textarea,figure,label{margin:0;padding:0}ul,ol{padding-left:2em}code,pre,samp,kbd{font-family:consolas,'DejaVu Sans Mono',courier,monospace;line-height:1em;white-space:pre-wrap}code,kbd,mark{border-radius:2px}em{font-style:italic}strong{font-weight:bold}kbd{padding:0 2px;border:1px solid #999}code{padding:2px 4px;color:#B11;background:rgba(0,0,0,.04)}mark{padding:2px 4px;background:#FF0}table{margin-bottom:1.5em}p:first-child,ul:first-child,ol:first-child,dl:first-child,blockquote:first-child,pre:first-child,h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child{margin-top:0}li p,li ul,li ol{margin-top:0;margin-bottom:0}img,table,td,blockquote,code,pre,textarea,input,video{max-width:100%}div,textarea,table,td,th,code,pre,samp{word-wrap:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;-o-hyphens:auto;hyphens:auto}img{height:auto;vertical-align:middle}#map_canvas img,.gmnoprint img{max-width:none}a img{border:0}body > script{display:none !important}.skip-links{position:absolute}.skip-links a{position:absolute;left:-7000px;padding:.5em;text-decoration:none;color:#FFF;background:#000}.skip-links a:focus{position:static}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mod,.item{overflow:hidden}.row{display:table;width:100%;table-layout:fixed}.row > *,.col{display:table-cell;vertical-align:top}.clear,.line,.row{clear:both}.clearfix:after,.line:after,.mod:after{content:"";display:table;clear:both}.left{float:left}img.left{margin-right:1em}.right{float:right}img.right{margin-left:1em}img.left,img.right{margin-bottom:5px}.center{margin-right:auto;margin-left:auto}.txtleft{text-align:left}.txtright{text-align:right}.txtcenter{text-align:center}.inbl{display:inline-block;margin-right:-.25em;vertical-align:top}.w10{width:10%}.w20{width:20%}.w25{width:25%}.w30{width:30%}.w33{width:33.333%}.w40{width:40%}.w50{width:50%}.w60{width:60%}.w66{width:66.666%}.w70{width:70%}.w75{width:75%}.w80{width:80%}.w90{width:90%}.w100{width:100%}.w50p{width:50px}.w100p{width:100px}.w150p{width:150px}.w200p{width:200px}.w300p{width:300px}.w400p{width:400px}.w500p{width:500px}.w600p{width:600px}.w700p{width:700px}.w800p{width:800px}.w960p{width:960px}.mw960p{max-width:960px}.m-reset,.ma0{margin:0 !important}.p-reset,.pa0{padding:0 !important}.ma1,.mas{margin:10px !important}.ma2,.mam{margin:20px !important}.ma3,.mal{margin:30px !important}.pa1,.pas{padding:10px}.pa2,.pam{padding:20px}.pa3,.pal{padding:30px}.mt0,.mtn{margin-top:0 !important}.mt1,.mts{margin-top:10px !important}.mt2,.mtm{margin-top:20px !important}.mt3,.mtl{margin-top:30px !important}.mr0,.mrn{margin-right:0}.mr1,.mrs{margin-right:10px}.mr2,.mrm{margin-right:20px}.mr3,.mrl{margin-right:30px}.mb0,.mbn{margin-bottom:0 !important}.mb1,.mbs{margin-bottom:10px !important}.mb2,.mbm{margin-bottom:20px !important}.mb3,.mbl{margin-bottom:30px !important}.ml0,.mln{margin-left:0}.ml1,.mls{margin-left:10px}.ml2,.mlm{margin-left:20px}.ml3,.mll{margin-left:30px}.pt0,.ptn{padding-top:0}.pt1,.pts{padding-top:10px}.pt2,.ptm{padding-top:20px}.pt3,.ptl{padding-top:30px}.pr0,.prn{padding-right:0}.pr1,.prs{padding-right:10px}.pr2,.prm{padding-right:20px}.pr3,.prl{padding-right:30px}.pb0,.pbn{padding-bottom:0}.pb1,.pbs{padding-bottom:10px}.pb2,.pbm{padding-bottom:20px}.pb3,.pbl{padding-bottom:30px}.pl0,.pln{padding-left:0}.pl1,.pls{padding-left:10px}.pl2,.plm{padding-left:20px}.pl3,.pll{padding-left:30px}.visually-hidden{position:absolute;left:-7000px;overflow:hidden}[dir=rtl] .visually-hidden{right:-7000px;left:auto}.desktop-hidden{display:none}form,fieldset{border:none}input,button,select,label,.btn{font-family:inherit;vertical-align:middle}textarea{font-family:inherit;resize:vertical}.ie67 .clearfix,.ie67 .line,.ie67 .mod,.ie67 .row,.ie67 .col{zoom:1}.ie67 .btn,.ie67 .col,.ie67 .inbl{display:inline;zoom:1}.ie8 img{width:auto}@media print{p,blockquote{orphans:2;widows:2}blockquote,ul,ol{page-break-inside:avoid}h1,h2,h3,caption{page-break-after:avoid}}@media(orientation:landscape)and(max-device-width:768px){html,body{-webkit-text-size-adjust:100%}}[class*=grid] > *{float:left}[class*=grid] > * + *{margin-left:2%}.grid2 > *{width:49%}.grid3 > *{width:32%}.grid4 > *{width:23.5%}.grid5 > *{width:18.4%}.grid6 > *{width:15%}.grid2-1 > *:first-child,.grid1-2 > * + *{width:66%}.grid1-2 > *:first-child,.grid2-1 > * + *{width:32%}.grid1-3 > *:first-child,.grid3-1 > * + *{width:23.5%}.grid3-1 > *:first-child,.grid1-3 > * + *{width:74.5%}table,.table{max-width:100%;border-collapse:collapse;table-layout:fixed;vertical-align:top}table{width:100%}.table{display:table}caption{padding:10px;font-style:italic;color:#555}table{border:1px solid #CCC}tr > * + *{border-left:1px solid #CCC}th,td{padding:.3em .8em;border-bottom:1px solid #CCC;text-align:left}td{color:#333}.alternate{border:0}.alternate tbody{border:1px solid #CCC}.alternate thead tr > * + *{border-left:0}.alternate tbody tr > * + *{border-left:1px solid #CCC}.alternate-vert{border:0;border-right:1px solid #CCC}.alternate-vert tr >:first-child{border-bottom:0}.alternate-vert tr > * + *{border-top:1px solid #CCC}.striped tbody tr:nth-child(odd){background:#EEE;background:rgba(0,0,0,.05)}.striped-vert tr >:first-child{background:#EEE;background:rgba(0,0,0,.05)}.btn{display:inline-block}label{display:inline-block;vertical-align:middle;cursor:pointer}legend{border:0;white-space:normal}button,input,select{margin:0;font-family:"Century Gothic",helvetica,arial,sans-serif;font-size:100%;vertical-align:middle}textarea{min-height:5em;overflow:auto;font-size:1.75em;vertical-align:top;resize:vertical}}ol.styled{counter-reset:styled}ol.styled > li{counter-increment:styled;margin-bottom:.3em;list-style-type:none}ol.styled > li:before{content:counter(styled);display:inline-block;width:1em;height:1em;margin-right:.4em;padding:2px;border-radius:50%;text-align:center;text-indent:-.1em;font-size:.9em;line-height:1;vertical-align:middle;color:#FFF;background:rgba(0,0,0,.5)}@media(min-width:1280px){.large-hidden,.tablet-hidden{display:none !important}.large-visible{display:block !important}.large-no-float{float:none}.large-inbl{display:inline-block;float:none;vertical-align:top}.large-row{display:table;width:100% !important;table-layout:fixed}.large-col{display:table-cell;vertical-align:top}.large-w25{width:25% !important}.large-w33{width:33.3333% !important}.large-w50{width:50% !important}.large-w66{width:66.6666% !important}.large-w75{width:75% !important}.large-w100{display:block !important;float:none !important;clear:none !important;width:auto !important;margin-right:0 !important;margin-left:0 !important;border:0}.large-ma0,.large-man{margin:0 !important}}@media(max-width:768px){.w60,.w66,.w70,.w75,.w80,.w90,.w100,.w600p,.w700p,.w800p,.w960p,.mw960p,.medium-wauto{width:auto}.medium-hidden,.tablet-hidden{display:none !important}.medium-visible{display:block !important}.medium-no-float{float:none}.medium-inbl{display:inline-block;float:none;vertical-align:top}.medium-row{display:table;width:100% !important;table-layout:fixed}.medium-col{display:table-cell;vertical-align:top}.medium-w25{width:25% !important}.medium-w33{width:33.3333% !important}.medium-w50{width:50% !important}.medium-w66{width:66.6666% !important}.medium-w75{width:75% !important}.medium-w100{display:block !important;float:none !important;clear:none !important;width:auto !important;margin-right:0 !important;margin-left:0 !important;border:0}.medium-ma0,.medium-man{margin:0 !important}.grid4 > *{width:49% !important}.grid4 >:first-child + * + *{margin-left:0 !important}.grid6 > *{width:32% !important}.grid6 >:first-child + * + * + *{margin-left:0 !important}}@media(max-width:640px){.mod,.item,.col,fieldset{display:block !important;float:none !important;clear:none !important;width:auto !important;margin-right:0 !important;margin-left:0 !important;border:0}.w30,.w33,.w40,.w50,.w300p,.w400p,.w500p{width:auto}.row{display:block !important;width:100% !important}.tiny-hidden,.phone-hidden{display:none !important}.tiny-visible{display:block !important}.tiny-no-float{float:none}.tiny-inbl{display:inline-block;float:none;vertical-align:top}.tiny-row{display:table;width:100% !important;table-layout:fixed}.tiny-col{display:table-cell;vertical-align:top}th,td{display:block !important;width:auto !important;text-align:left !important}thead{display:none}.tiny-w25{width:25% !important}.tiny-w33{width:33.3333% !important}.tiny-w50{width:50% !important}.tiny-w66{width:66.6666% !important}.tiny-w75{width:75% !important}.tiny-w100{display:block !important;float:none !important;clear:none !important;width:auto !important;margin-right:0 !important;margin-left:0 !important;border:0}.tiny-ma0,.tiny-man{margin:0 !important}} \ No newline at end of file
diff --git a/themes/default/css/messages.css b/themes/default/css/messages.css
new file mode 100644
index 00000000..46b54795
--- /dev/null
+++ b/themes/default/css/messages.css
@@ -0,0 +1,75 @@
1.messages {
2 display: block;
3 clear: both;
4 width: 400px;
5 margin: 10px auto 10px;
6 padding: 10px 0;
7 -moz-border-radius: 4px;
8 border-radius: 4px;
9}
10
11.messages a.closeMessage {
12 display: none;
13 float: right;
14 width: 16px;
15 height: 16px;
16 margin: -14px -8px 0 0;
17 background: url(../img/messages/close.png) no-repeat;
18}
19
20/*.messages:hover a.closeMessage { visibility:visible; }*/
21
22.messages p {
23 margin: 3px 0 3px 10px !important;
24 padding: 0 10px 0 23px !important;
25 font-size: 14px;
26 line-height: 16px;
27}
28
29.messages.error {
30 border: 1px solid #c42608;
31 color: #c00 !important;
32 background: #fff0ef;
33}
34
35.messages.error p {
36 color: #c00 !important;
37 background: url(../img/messages/cross.png) no-repeat 0 50%;
38}
39
40.messages.success {
41 border: 1px solid #6dc70c;
42 background: #e0fbcc;
43}
44
45.messages.success p {
46 color: #2b6301 !important;
47 background: url(../img/messages/tick.png) no-repeat 0 50%;
48}
49
50.messages.warning {
51 border: 1px solid #ebcd41;
52 color: #000;
53 background: #fffcd3;
54}
55
56.messages.warning p {
57 color: #5f4e01;
58 background: url(../img/messages/warning.png) no-repeat 0 50%;
59}
60
61.messages.information,
62.messages.info {
63 border: 1px solid #82aee7;
64 background: #dfebfb;
65}
66
67.messages.information p,
68.messages.info p {
69 color: #064393;
70 background: url(../img/messages/help.png) no-repeat 0 50%;
71}
72
73.messages.information a {
74 text-decoration: underline;
75}
diff --git a/themes/default/css/print.css b/themes/default/css/print.css
new file mode 100644
index 00000000..9aefa779
--- /dev/null
+++ b/themes/default/css/print.css
@@ -0,0 +1,48 @@
1/* ### Layout ### */
2
3body {
4 font-family: Serif;
5 background-color: #fff;
6}
7
8@page {
9 margin: 1cm;
10}
11
12img {
13 max-width: 100% !important;
14}
15
16/* ### Content ### */
17
18/* Hide useless blocks */
19body > header,
20#links,
21#sort,
22body > footer,
23.top_link,
24div.tools,
25header div,
26.messages,
27.entrie + .results {
28 display: none !important;
29}
30
31article {
32 border: none !important;
33}
34
35/* Add URL after links */
36.vieworiginal a:after {
37 content: " (" attr(href) ")";
38}
39
40/* Add explanation after abbr */
41abbr[title]:after {
42 content: " (" attr(title) ")";
43}
44
45/* Change border on current pager item */
46.pagination span.current {
47 border-style: dashed;
48}
diff --git a/themes/default/css/style-default.css b/themes/default/css/style-default.css
new file mode 100644
index 00000000..9dc7c0b0
--- /dev/null
+++ b/themes/default/css/style-default.css
@@ -0,0 +1,55 @@
1a.back span {
2 background-image: url('../img/default/left.png');
3}
4
5a.top span {
6 background-image: url('../img/default/top.png');
7}
8
9a.fav span,
10a.fav-off span:hover {
11 background-image: url('../img/default/star-on.png');
12}
13
14a.fav span:hover,
15a.fav-off span {
16 background-image: url('../img/default/star-off.png');
17}
18
19a.archive span,
20a.archive-off span:hover {
21 background-image: url('../img/default/checkmark-on.png');
22}
23
24a.archive span:hover,
25a.archive-off span {
26 background-image: url('../img/default/checkmark-off.png');
27}
28
29a.twitter span {
30 background-image: url('../img/default/twitter.png');
31}
32
33a.shaarli span {
34 background-image: url('../img/default/shaarli.png');
35}
36
37a.flattr span {
38 background-image: url('../img/default/flattr.png');
39}
40
41a.email span {
42 background-image: url('../img/default/envelop.png');
43}
44
45a.delete span {
46 background-image: url('../img/default/remove.png');
47}
48
49a.link span {
50 background-image: url('../img/default/link.png');
51}
52
53a.bad-display span {
54 background-image: url('../img/default/bad-display.png');
55} \ No newline at end of file
diff --git a/themes/default/css/style.css b/themes/default/css/style.css
new file mode 100644
index 00000000..eb04f0c4
--- /dev/null
+++ b/themes/default/css/style.css
@@ -0,0 +1,321 @@
1body {
2 margin: 10px;
3 font-family: 'Roboto',Verdana,Geneva,sans-serif;
4 font-size: 16px;
5 color: #000;
6}
7
8header {
9 text-align: center;
10}
11
12header h1 {
13 font-size: 1.3em;
14}
15
16a,
17a:hover,
18a:visited {
19 color: #000;
20}
21
22.bouton {
23 border: none;
24 border-radius: 2px;
25 color: #fff;
26 background-color: #000;
27}
28
29.bouton:hover {
30 color: #f1f1f1;
31 background-color: #222;
32 cursor: pointer;
33}
34
35#main {
36 margin: 0 auto;
37}
38
39#main #links {
40 padding: 0;
41 text-align: center;
42 font-size: 0.9em;
43 list-style-type: none;
44}
45
46#main #links li {
47 display: inline;
48}
49
50#main #links li .current {
51 -webkit-border-radius: 2px;
52 border-radius: 2px;
53 color: #fff;
54 background-color: #000;
55}
56
57#main #sort {
58 padding: 0;
59 text-align: center;
60 list-style-type: none;
61 opacity: 0.5;
62}
63
64#main #sort li {
65 display: inline;
66 font-size: 0.9em;
67}
68
69#main #sort li + li {
70 margin-left: 10px;
71}
72
73#main #sort a {
74 padding: 2px 2px 0;
75 vertical-align: middle;
76}
77
78#main #sort img {
79 vertical-align: baseline;
80}
81#main #sort img:hover {
82 cursor: pointer;
83}
84
85#links a {
86 padding: 5px 10px;
87 text-decoration: none;
88}
89
90#links a:hover {
91 -webkit-border-radius: 2px;
92 border-radius: 2px;
93 color: #f1f1f1;
94 background-color: #040707;
95}
96
97/*** ***/
98
99/*** LINKS DISPLAY ***/
100
101#main .tool {
102 text-decoration: none;
103 cursor: pointer;
104}
105
106#main #content {
107 margin-top: 20px;
108}
109
110#main #content h2 {
111 text-decoration: none;
112 font-size: 1.3em;
113}
114
115#main #content .entrie {
116 margin-top: 15px;
117 padding-bottom: 15px;
118 border-bottom: 1px dashed #222;
119 overflow: hidden;
120}
121
122/* First entry */
123#main #content .results + .entrie {
124 clear: both;
125 margin-top: 0;
126}
127
128#main .entrie .tools {
129 float: right;
130 text-align: right;
131 list-style-type: none;
132 opacity: 0.5;
133}
134
135#main .entrie .tools .tool span {
136 display: inline-block;
137 width: 16px;
138 height: 16px;
139 /* Hide textual content */
140 overflow: hidden;
141 text-align: left;
142 text-indent: -9999px;
143}
144
145/*** ***/
146
147/*** ARTICLE PAGE ***/
148
149#article {
150 margin: 0 auto;
151}
152
153#article header {
154 border-bottom: 1px solid #222;
155}
156
157#article header {
158 text-align: left;
159}
160
161#article header h1 small {
162 float: right;
163 font-size: 0.6em;
164}
165
166#article header a {
167 text-decoration: none;
168}
169
170.backhome {
171 display: inline;
172}
173
174.results {
175 padding: 15px 0;
176 overflow: hidden;
177}
178
179.nb-results {
180 float: left;
181 font-size: 0.9em;
182 line-height: 24px;
183 vertical-align: middle;
184}
185
186#article_toolbar {
187 position: fixed;
188 bottom: 0;
189 left: 0;
190 width: 100%;
191 height: 50px;
192 padding-top: 17px;
193 text-align: center;
194 color: #fff;
195 opacity: 0.8;
196 background: #fff;
197}
198
199#article_toolbar li {
200 display: inline;
201 padding-right: 30px;
202}
203
204#article_toolbar .tool {
205 padding: 0 2px;
206}
207
208#article_toolbar .tool span {
209 display: inline-block;
210 width: 16px;
211 height: 16px;
212 /* Hide textual content */
213 overflow: hidden;
214 text-align: left;
215 text-indent: -9999px;
216}
217
218/*** ***/
219
220/*** PAGINATION ***/
221
222.pagination {
223 float: right;
224 text-align: right;
225}
226
227.pagination a {
228 height: 25px;
229 margin: 2px;
230 padding: 4px 8px;
231 border: 1px solid #d5d5d5;
232 text-decoration: none;
233 font-size: 11px;
234 font-weight: bold;
235 color: #333;
236}
237
238.pagination a:hover,
239.pagination a:active {
240 background-color: #efefef;
241}
242
243.pagination .current {
244 height: 25px;
245 margin: 2px;
246 padding: 4px 8px;
247 border: 1px solid #d5d5d5;
248 text-decoration: none;
249 font-size: 11px;
250 font-weight: bold;
251 color: #000;
252 background-color: #ccc;
253}
254
255.pagination .disabled {
256 display: none;
257}
258
259#bookmarklet {
260 padding: 5px;
261 border: 1px dashed #808080;
262 background: #fff;
263 cursor: move;
264}
265
266.top_link {
267 display: none;
268 z-index: 2000;
269 position: fixed;
270 right: 15px;
271 bottom: 15px;
272 padding: 20px;
273 -webkit-border-radius: 40px;
274 -moz-border-radius: 40px;
275 border-radius: 40px;
276 opacity: 0.9;
277 background: #ccc;
278}
279
280footer {
281 clear: both;
282}
283
284.reading-time {
285 font-size: 0.8em;
286}
287
288#inputform {
289 display: none;
290 margin-top: 5px;
291 margin-right: auto;
292 margin-left: auto;
293 padding-bottom: 5px;
294 max-width: 300px;
295 border-radius: 3px;
296 text-align: center;
297 color: #fff;
298 opacity: 0.8;
299 background-color: rgba(0,0,0,0.9);
300}
301
302a.back span,
303a.top span,
304a.fav span,
305a.fav span:hover,
306a.fav-off span,
307a.fav-off span:hover,
308a.archive span,
309a.archive span:hover,
310a.archive-off span,
311a.archive-off span:hover,
312a.twitter span,
313a.shaarli span,
314a.flattr span,
315a.email span,
316a.delete span,
317a.link span,
318a.bad-display span,
319a.reading-time span {
320 background-repeat: no-repeat;
321} \ No newline at end of file
diff --git a/themes/default/error.twig b/themes/default/error.twig
new file mode 100644
index 00000000..c829d12b
--- /dev/null
+++ b/themes/default/error.twig
@@ -0,0 +1,6 @@
1{% extends "layout.twig" %}
2{% block title %}{% trans "plop" %}{% endblock %}
3{% block content %}
4 {{ msg|raw }}
5 <p>Don't forget <a href="http://inthepoche.com/doc">the documentation</a>.</p>
6{% endblock %} \ No newline at end of file
diff --git a/themes/default/export.twig b/themes/default/export.twig
new file mode 100644
index 00000000..4adb9540
--- /dev/null
+++ b/themes/default/export.twig
@@ -0,0 +1 @@
{{ export }} \ No newline at end of file
diff --git a/themes/default/home.twig b/themes/default/home.twig
new file mode 100644
index 00000000..c1b29ec3
--- /dev/null
+++ b/themes/default/home.twig
@@ -0,0 +1,49 @@
1{% extends "layout.twig" %}
2{% block title %}
3{% if view == 'fav' %}
4{% trans "favoris" %}
5{% elseif view == 'archive' %}
6{% trans "archive" %}
7{% else %}
8{% trans "unread" %}
9{% endif %}
10{% endblock %}
11{% block menu %}
12{% include '_menu.twig' %}
13{% endblock %}
14{% block precontent %}
15 {% if entries|length > 1 %}
16 <ul id="sort">
17 <li><a href="./?sort=ia&amp;view={{ view }}"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/top.png" alt="{% trans "by date asc" %}" title="{% trans "by date asc" %}" /></a> {% trans "by date" %} <a href="./?sort=id&amp;view={{ view }}"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by date desc" %}" title="{% trans "by date desc" %}" /></a></li>
18 <li><a href="./?sort=ta&amp;view={{ view }}"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/top.png" alt="{% trans "by title asc" %}" title="{% trans "by title asc" %}" /></a> {% trans "by title" %} <a href="./?sort=td&amp;view={{ view }}"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by title desc" %}" title="{% trans "by title desc" %}" /></a></li>
19 </ul>
20 {% endif %}
21{% endblock %}
22{% block content %}
23 {% if entries is empty %}
24 <div class="messages warning"><p>{% trans "No link available here!" %}</p></div>
25 {% else %}
26 {% block pager %}
27 {% if nb_results > 1 %}
28 <div class="results">
29 <div class="nb-results">{{ nb_results }} {% trans "results" %}</div>
30 {{ page_links | raw }}
31 </div>
32 {% endif %}
33 {% endblock %}
34 {% for entry in entries %}
35 <div id="entry-{{ entry.id|e }}" class="entrie">
36 <h2><a href="index.php?view=view&amp;id={{ entry.id|e }}">{{ entry.title|raw }}</a></h2>
37 <ul class="tools">
38 <li><a title="{% trans "toggle mark as read" %}" class="tool {% if entry.is_read == 0 %}archive-off{% else %}archive{% endif %}" href="./?action=toggle_archive&amp;id={{ entry.id|e }}"><span>{% trans "toggle mark as read" %}</span></a></li>
39 <li><a title="{% trans "toggle favorite" %}" class="tool {% if entry.is_fav == 0 %}fav-off{% else %}fav{% endif %}" href="./?action=toggle_fav&amp;id={{ entry.id|e }}"><span>{% trans "toggle favorite" %}</span></a></li>
40 <li><a title="{% trans "delete" %}" class="tool delete" href="./?action=delete&amp;id={{ entry.id|e }}"><span>{% trans "delete" %}</span></a></li>
41 <li><a href="{{ entry.url|e }}" target="_blank" title="{% trans "original" %} : {{ entry.title|e }}" class="tool link"><span>{{ entry.url | e | getDomain }}</span></a></li>
42 <li><a target="_blank" title="{% trans "estimated reading time:" %} {{ entry.content| getReadingTime }} min" class="reading-time"><span>{{ entry.content| getReadingTime }} min</span></a></li>
43 </ul>
44 <p>{{ entry.content|striptags|slice(0, 300) }}...</p>
45 </div>
46 {% endfor %}
47 {% endif %}
48 {{ block('pager') }}
49{% endblock %} \ No newline at end of file
diff --git a/themes/default/img/apple-touch-icon-144x144-precomposed.png b/themes/default/img/apple-touch-icon-144x144-precomposed.png
new file mode 100644
index 00000000..557b479c
--- /dev/null
+++ b/themes/default/img/apple-touch-icon-144x144-precomposed.png
Binary files differ
diff --git a/themes/default/img/apple-touch-icon-72x72-precomposed.png b/themes/default/img/apple-touch-icon-72x72-precomposed.png
new file mode 100644
index 00000000..e167d3a4
--- /dev/null
+++ b/themes/default/img/apple-touch-icon-72x72-precomposed.png
Binary files differ
diff --git a/themes/default/img/apple-touch-icon.png b/themes/default/img/apple-touch-icon.png
new file mode 100644
index 00000000..4d222fba
--- /dev/null
+++ b/themes/default/img/apple-touch-icon.png
Binary files differ
diff --git a/themes/default/img/default/backtotop.png b/themes/default/img/default/backtotop.png
new file mode 100644
index 00000000..051238ef
--- /dev/null
+++ b/themes/default/img/default/backtotop.png
Binary files differ
diff --git a/themes/default/img/default/bad-display.png b/themes/default/img/default/bad-display.png
new file mode 100755
index 00000000..6866799f
--- /dev/null
+++ b/themes/default/img/default/bad-display.png
Binary files differ
diff --git a/themes/default/img/default/checkmark-off.png b/themes/default/img/default/checkmark-off.png
new file mode 100644
index 00000000..3db5a06d
--- /dev/null
+++ b/themes/default/img/default/checkmark-off.png
Binary files differ
diff --git a/themes/default/img/default/checkmark-on.png b/themes/default/img/default/checkmark-on.png
new file mode 100644
index 00000000..cd3abb2c
--- /dev/null
+++ b/themes/default/img/default/checkmark-on.png
Binary files differ
diff --git a/themes/default/img/default/down.png b/themes/default/img/default/down.png
new file mode 100644
index 00000000..b9d536a7
--- /dev/null
+++ b/themes/default/img/default/down.png
Binary files differ
diff --git a/themes/default/img/default/envelop.png b/themes/default/img/default/envelop.png
new file mode 100644
index 00000000..6be1c886
--- /dev/null
+++ b/themes/default/img/default/envelop.png
Binary files differ
diff --git a/themes/default/img/default/flattr.png b/themes/default/img/default/flattr.png
new file mode 100755
index 00000000..0404aaea
--- /dev/null
+++ b/themes/default/img/default/flattr.png
Binary files differ
diff --git a/themes/default/img/default/left.png b/themes/default/img/default/left.png
new file mode 100644
index 00000000..a0a53631
--- /dev/null
+++ b/themes/default/img/default/left.png
Binary files differ
diff --git a/themes/default/img/default/link.png b/themes/default/img/default/link.png
new file mode 100755
index 00000000..db62819d
--- /dev/null
+++ b/themes/default/img/default/link.png
Binary files differ
diff --git a/themes/default/img/default/remove.png b/themes/default/img/default/remove.png
new file mode 100644
index 00000000..f8ad56a3
--- /dev/null
+++ b/themes/default/img/default/remove.png
Binary files differ
diff --git a/themes/default/img/default/shaarli.png b/themes/default/img/default/shaarli.png
new file mode 100644
index 00000000..1eb30f60
--- /dev/null
+++ b/themes/default/img/default/shaarli.png
Binary files differ
diff --git a/themes/default/img/default/star-off.png b/themes/default/img/default/star-off.png
new file mode 100644
index 00000000..6a0133a7
--- /dev/null
+++ b/themes/default/img/default/star-off.png
Binary files differ
diff --git a/themes/default/img/default/star-on.png b/themes/default/img/default/star-on.png
new file mode 100644
index 00000000..a9f96eaa
--- /dev/null
+++ b/themes/default/img/default/star-on.png
Binary files differ
diff --git a/themes/default/img/default/top.png b/themes/default/img/default/top.png
new file mode 100644
index 00000000..954a8c0a
--- /dev/null
+++ b/themes/default/img/default/top.png
Binary files differ
diff --git a/themes/default/img/default/twitter.png b/themes/default/img/default/twitter.png
new file mode 100644
index 00000000..cfcfe419
--- /dev/null
+++ b/themes/default/img/default/twitter.png
Binary files differ
diff --git a/themes/default/img/favicon.ico b/themes/default/img/favicon.ico
new file mode 100644
index 00000000..0e9ff779
--- /dev/null
+++ b/themes/default/img/favicon.ico
Binary files differ
diff --git a/themes/default/img/logo.png b/themes/default/img/logo.png
new file mode 100644
index 00000000..5305c77d
--- /dev/null
+++ b/themes/default/img/logo.png
Binary files differ
diff --git a/themes/default/img/messages/close.png b/themes/default/img/messages/close.png
new file mode 100644
index 00000000..731aa018
--- /dev/null
+++ b/themes/default/img/messages/close.png
Binary files differ
diff --git a/themes/default/img/messages/cross.png b/themes/default/img/messages/cross.png
new file mode 100644
index 00000000..1514d51a
--- /dev/null
+++ b/themes/default/img/messages/cross.png
Binary files differ
diff --git a/themes/default/img/messages/help.png b/themes/default/img/messages/help.png
new file mode 100644
index 00000000..5c870176
--- /dev/null
+++ b/themes/default/img/messages/help.png
Binary files differ
diff --git a/themes/default/img/messages/tick.png b/themes/default/img/messages/tick.png
new file mode 100644
index 00000000..a9925a06
--- /dev/null
+++ b/themes/default/img/messages/tick.png
Binary files differ
diff --git a/themes/default/img/messages/warning.png b/themes/default/img/messages/warning.png
new file mode 100644
index 00000000..628cf2da
--- /dev/null
+++ b/themes/default/img/messages/warning.png
Binary files differ
diff --git a/themes/default/install.twig b/themes/default/install.twig
new file mode 100644
index 00000000..6e85e5cb
--- /dev/null
+++ b/themes/default/install.twig
@@ -0,0 +1,28 @@
1{% extends "layout.twig" %}
2{% block title %}{% trans "installation" %}{% endblock %}
3{% block content %}
4 <form method="post" action="?install" name="loginform">
5 <fieldset class="w500p center">
6 <h2 class="mbs txtcenter">{% trans "install your poche" %}</h2>
7 <p>
8 {% trans "poche is still not installed. Please fill the below form to install it. Don't hesitate to <a href='http://inthepoche.com/doc'>read the documentation on poche website</a>." %}
9 </p>
10 <p class="row">
11 <label class="col w150p" for="login">{% trans "Login" %}</label>
12 <input class="col" type="text" id="login" name="login" placeholder="Login" tabindex="1" autofocus />
13 </p>
14 <p class="row">
15 <label class="col w150p" for="password">{% trans "Password" %}</label>
16 <input class="col" type="password" id="password" name="password" placeholder="Password" tabindex="2">
17 </p>
18 <p class="row">
19 <label class="col w150p" for="password_repeat">{% trans "Repeat your password" %}</label>
20 <input class="col" type="password" id="password_repeat" name="password_repeat" placeholder="Password" tabindex="3">
21 </p>
22 <p class="row mts txtcenter">
23 <button class="bouton" type="submit" tabindex="4">{% trans "Install" %}</button>
24 </p>
25 </fieldset>
26 <input type="hidden" name="token" value="{{ token }}">
27 </form>
28{% endblock %} \ No newline at end of file
diff --git a/themes/default/js/restoreScroll.js b/themes/default/js/restoreScroll.js
new file mode 100644
index 00000000..331c9e19
--- /dev/null
+++ b/themes/default/js/restoreScroll.js
@@ -0,0 +1,25 @@
1function supportsLocalStorage() {
2 try {
3 return 'localStorage' in window && window['localStorage'] !== null;
4 } catch (e) {
5 return false;
6 }
7}
8
9function savePercent(id, percent) {
10 if (!supportsLocalStorage()) { return false; }
11 localStorage["poche.article." + id + ".percent"] = percent;
12 return true;
13}
14
15function retrievePercent(id) {
16 if (!supportsLocalStorage()) { return false; }
17
18 var bheight = $(document).height();
19 var percent = localStorage["poche.article." + id + ".percent"];
20 var scroll = bheight * percent;
21
22 $('html,body').animate({scrollTop: scroll}, 'fast');
23
24 return true;
25} \ No newline at end of file
diff --git a/themes/default/layout.twig b/themes/default/layout.twig
new file mode 100644
index 00000000..fec7054a
--- /dev/null
+++ b/themes/default/layout.twig
@@ -0,0 +1,31 @@
1<!DOCTYPE html>
2<!--[if lte IE 6]><html class="no-js ie6 ie67 ie678" lang="{{ lang }}"><![endif]-->
3<!--[if lte IE 7]><html class="no-js ie7 ie67 ie678" lang="{{ lang }}"><![endif]-->
4<!--[if IE 8]><html class="no-js ie8 ie678" lang="{{ lang }}"><![endif]-->
5<!--[if gt IE 8]><html class="no-js" lang="{{ lang }}"><![endif]-->
6<html lang="{{ lang }}">
7 <head>
8 <meta name="viewport" content="initial-scale=1.0">
9 <meta charset="utf-8">
10 <!--[if IE]>
11 <meta http-equiv="X-UA-Compatible" content="IE=10">
12 <![endif]-->
13 <title>{% block title %}{% endblock %} - poche</title>
14{% include '_head.twig' %}
15{% include '_bookmarklet.twig' %}
16 </head>
17 <body>
18 {% include '_top.twig' %}
19 <div id="main">
20 {% block menu %}{% endblock %}
21 {% block precontent %}{% endblock %}
22 {% block messages %}
23 {% include '_messages.twig' %}
24 {% endblock %}
25 <div id="content" class="w600p center">
26 {% block content %}{% endblock %}
27 </div>
28 </div>
29{% include '_footer.twig' %}
30 </body>
31</html> \ No newline at end of file
diff --git a/themes/default/login.twig b/themes/default/login.twig
new file mode 100644
index 00000000..0ae130bc
--- /dev/null
+++ b/themes/default/login.twig
@@ -0,0 +1,32 @@
1{% extends "layout.twig" %}
2
3{% block title %}{% trans "login to your poche" %}{% endblock %}
4{% block content %}
5 <form method="post" action="?login" name="loginform">
6 <fieldset class="w500p center">
7 <h2 class="mbs txtcenter">{% trans "login to your poche" %}</h2>
8 {% if constant('MODE_DEMO') == 1 %}<p>{% trans "you are in demo mode, some features may be disabled." %}</p>{% endif %}
9 <div class="row">
10 <label class="col w150p" for="login">{% trans "Login" %}</label>
11 <input class="col" type="text" id="login" name="login" placeholder="Login" tabindex="1" autofocus {% if constant('MODE_DEMO') == 1 %}value="poche"{% endif %} />
12 </div>
13
14 <div class="row">
15 <label class="col w150p" for="password">{% trans "Password" %}</label>
16 <input class="col" type="password" id="password" name="password" placeholder="Password" tabindex="2" {% if constant('MODE_DEMO') == 1 %}value="poche"{% endif %} />
17 </div>
18 <div class="row">
19 <label class="col w150p" for="longlastingsession">{% trans "Stay signed in" %}</label>
20 <div class="col">
21 <input type="checkbox" id="longlastingsession" name="longlastingsession" tabindex="3">
22 <small class="inbl">{% trans "(Do not check on public computers)" %}</small>
23 </div>
24 </div>
25 <div class="row mts txtcenter">
26 <button class="bouton" type="submit" tabindex="4">{% trans "Login" %}</button>
27 </div>
28 </fieldset>
29 <input type="hidden" name="returnurl" value="{{ referer }}">
30 <input type="hidden" name="token" value="{{ token }}">
31 </form>
32{% endblock %} \ No newline at end of file
diff --git a/themes/default/view.twig b/themes/default/view.twig
new file mode 100644
index 00000000..1e54ae38
--- /dev/null
+++ b/themes/default/view.twig
@@ -0,0 +1,51 @@
1{% extends "layout.twig" %}
2{% block title %}{{ entry.title|raw }} ({{ entry.url | e | getDomain }}){% endblock %}
3{% block content %}
4 <div id="article_toolbar">
5 <ul>
6 <li><a href="./" title="{% trans "back to home" %}" class="tool back"><span>{% trans "back to home" %}</span></a></li>
7 <li><a href="#top" title="{% trans "back to top" %}" class="tool top"><span>{% trans "back to top" %}</span></a></li>
8 <li><a href="{{ entry.url|e }}" target="_blank" title="{% trans "original" %} : {{ entry.title|e }}" class="tool link"><span>{{ entry.url | e | getDomain }}</span></a></li>
9 <li><a title="{% trans "toggle mark as read" %}" class="tool {% if entry.is_read == 0 %}archive-off{% else %}archive{% endif %}" href="./?action=toggle_archive&amp;id={{ entry.id|e }}"><span>{% trans "toggle mark as read" %}</span></a></li>
10 <li><a title="{% trans "toggle favorite" %}" class="tool {% if entry.is_fav == 0 %}fav-off{% else %}fav{% endif %}" href="./?action=toggle_fav&amp;id={{ entry.id|e }}"><span>{% trans "toggle favorite" %}</span></a></li>
11 <li><a title="{% trans "delete" %}" class="tool delete" href="./?action=delete&amp;id={{ entry.id|e }}"><span>{% trans "delete" %}</span></a></li>
12 {% if constant('SHARE_TWITTER') == 1 %}<li><a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@getpoche" target="_blank" class="tool twitter" title="{% trans "tweet" %}"><span>{% trans "tweet" %}</span></a></li>{% endif %}
13 {% if constant('SHARE_MAIL') == 1 %}<li><a href="mailto:?subject={{ entry.title|url_encode }}&amp;body={{ entry.url|url_encode }}%20via%20@getpoche" class="tool email" title="{% trans "email" %}"><span>{% trans "email" %}</span></a></li>{% endif %}
14 {% if constant('SHARE_SHAARLI') == 1 %}<li><a href="{{ constant('SHAARLI_URL') }}/index.php?post={{ entry.url|url_encode }}&amp;title={{ entry.title|url_encode }}" target="_blank" class="tool shaarli" title="{% trans "shaarli" %}"><span>{% trans "shaarli" %}</span></a></li>{% endif %}
15 {% if constant('FLATTR') == 1 %}{% if flattr.status == constant('FLATTRABLE') %}<li><a href="http://flattr.com/submit/auto?url={{ entry.url }}" class="tool flattr" target="_blank" title="{% trans "flattr" %}"><span>{% trans "flattr" %}</span></a></li>{% elseif flattr.status == constant('FLATTRED') %}<li><a href="{{ flattr.flattrItemURL }}" class="tool flattr" target="_blank" title="{% trans "flattr" %}"><span>{% trans "flattr" %}</span>{{ flattr.numflattrs }}</a></li>{% endif %}{% endif %}
16 <li><a href="mailto:support@inthepoche.com?subject=Wrong%20display%20in%20poche&amp;body={{ entry.url|url_encode }}" title="{% trans "this article appears wrong?" %}" class="tool bad-display"><span>{% trans "this article appears wrong?" %}</span></a></li>
17 </ul>
18 </div>
19 <div id="article">
20 <header class="mbm">
21 <h1>{{ entry.title|raw }}</h1>
22 </header>
23 <article>
24 {{ content | raw }}
25 </article>
26 </div>
27 <script src="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/js/restoreScroll.js"></script>
28 <script type="text/javascript">
29 $(document).ready(function() {
30
31 $(window).scroll(function(e){
32 var scrollTop = $(window).scrollTop();
33 var docHeight = $(document).height();
34 var scrollPercent = (scrollTop) / (docHeight);
35 var scrollPercentRounded = Math.round(scrollPercent*100)/100;
36 savePercent({{ entry.id|e }}, scrollPercentRounded);
37 });
38
39 retrievePercent({{ entry.id|e }});
40
41 $(window).resize(function(){
42 retrievePercent({{ entry.id|e }});
43 });
44
45 // Hide useless "back to top" link when there is no scrollbar
46 if ($("body").height() <= $(window).height()) {
47 $('#article_toolbar .tool.top').parent().hide();
48 }
49 });
50 </script>
51{% endblock %} \ No newline at end of file