--- /dev/null
+<div id="display-mode">
+ <a href="javascript: void(null);" id="listmode" class="listmode">
+ <img src="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/blank.png" alt="{% trans "toggle view mode" %}" title="{% trans "toggle view mode" %}" width="16" height="16">
+ </a>
+</div>
<link rel="stylesheet" href="{{ poche_url }}/themes/{{theme}}/css/messages.css" media="all">
<link rel="stylesheet" href="{{ poche_url }}/themes/{{theme}}/css/print.css" media="print">
<script src="{{ poche_url }}/themes/{{theme}}/js/jquery-2.0.3.min.js"></script>
+ <script src="{{ poche_url }}/themes/{{theme}}/js/jquery.cookie.js"></script>
<script src="{{ poche_url }}/themes/{{theme}}/js/init.js"></script>
<script src="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/js/closeMessage.js"></script>
left: 0;
text-align: right;
background: #333;
- padding-top: 9em;
+ padding-top: 9.5em;
height: 100%;
box-shadow:inset -4px 0 20px rgba(0,0,0,0.6);
z-index: 10;
position: relative;
z-index: 10;
padding-right: 5%;
+ padding-bottom: 1em;
}
#links a {
#links li:last-child {
position: fixed;
bottom: 1em;
- width: 10%;
+ width: 9em;
}
#links li:last-child a:before {
}
+#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;
+ vertical-align: middle;
+ margin-top: 10px;
+ margin-bottom: 10px;
+ opacity: 0.5;
+}
+#listmode {
+ width: 16px;
+ display: inline-block;
+ text-decoration: none;
+}
+#listmode a:hover {
+ opacity: 1;
+}
+.tablemode {
+ background-image: url("../img/baggy/table.png");
+ background-repeat: no-repeat;
+ background-position: bottom;
+}
+.listmode {
+ background-image: url("../img/baggy/list.png");
+ background-repeat: no-repeat;
+ background-position: bottom;
+}
+
+
/* ==========================================================================
2 = Layout
========================================================================== */
footer {
text-align: right;
- position: fixed;
+ position: relative;
bottom: 0;
right: 5em;
color: #999;
width: 100%;
margin-left: 0;
}
+ #display-mode {
+ display: none;
+ }
}
@media screen and (max-width: 500px) {
#article_toolbar a {
padding: 0.3em 0.4em 0.2em;
}
+
+ #display-mode {
+ display: none;
+ }
}
{% if entries is empty %}
<div class="messages warning"><p>{% trans "No articles found." %}</p></div>
{% else %}
+ <div>
+ {% include '_display-mode.twig' %}
+ {% include '_sorting.twig' %}
+ </div>
{% block pager %}
{% if nb_results > 1 %}
<div class="results">
-document.addEventListener('DOMContentLoaded', function() {
- var menu = document.getElementById('menu');
-
- menu.addEventListener('click', function(){
- if(this.nextElementSibling.style.display === "block") {
- this.nextElementSibling.style.display = "none";
- }else {
- this.nextElementSibling.style.display = "block";
+$(document).ready(function() {
+
+ $("#menu").click(function(){
+ $("#links").toggle();
+ });
+
+
+ $("#listmode").click(function(){
+ if ( $.cookie("listmode") == 1 ) {
+ $(".entrie").css("width", "");
+ $(".entrie").css("margin-left", "");
+
+ $.removeCookie("listmode");
+ $("#listmode").removeClass("tablemode");
+ $("#listmode").addClass("listmode");
}
-
+ else {
+ $.cookie("listmode", 1, {expires: 365});
+
+ $(".entrie").css("width", "100%");
+ $(".entrie").css("margin-left", "0");
+ $("#listmode").removeClass("listmode");
+ $("#listmode").addClass("tablemode");
+ }
+
});
-});
\ No newline at end of file
+
+ if ( $.cookie("listmode") == 1 ) {
+ $(".entrie").css("width", "100%");
+ $(".entrie").css("margin-left", "0");
+ $("#listmode").removeClass("listmode");
+ $("#listmode").addClass("tablemode");
+ }
+
+
+});
--- /dev/null
+/*!
+ * jQuery Cookie Plugin v1.4.0
+ * https://github.com/carhartl/jquery-cookie
+ *
+ * Copyright 2013 Klaus Hartl
+ * Released under the MIT license
+ */
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as anonymous module.
+ define(['jquery'], factory);
+ } else {
+ // Browser globals.
+ factory(jQuery);
+ }
+}(function ($) {
+
+ var pluses = /\+/g;
+
+ function encode(s) {
+ return config.raw ? s : encodeURIComponent(s);
+ }
+
+ function decode(s) {
+ return config.raw ? s : decodeURIComponent(s);
+ }
+
+ function stringifyCookieValue(value) {
+ return encode(config.json ? JSON.stringify(value) : String(value));
+ }
+
+ function parseCookieValue(s) {
+ if (s.indexOf('"') === 0) {
+ // This is a quoted cookie as according to RFC2068, unescape...
+ s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
+ }
+
+ try {
+ // Replace server-side written pluses with spaces.
+ // If we can't decode the cookie, ignore it, it's unusable.
+ s = decodeURIComponent(s.replace(pluses, ' '));
+ } catch(e) {
+ return;
+ }
+
+ try {
+ // If we can't parse the cookie, ignore it, it's unusable.
+ return config.json ? JSON.parse(s) : s;
+ } catch(e) {}
+ }
+
+ function read(s, converter) {
+ var value = config.raw ? s : parseCookieValue(s);
+ return $.isFunction(converter) ? converter(value) : value;
+ }
+
+ var config = $.cookie = function (key, value, options) {
+
+ // Write
+ if (value !== undefined && !$.isFunction(value)) {
+ options = $.extend({}, config.defaults, options);
+
+ if (typeof options.expires === 'number') {
+ var days = options.expires, t = options.expires = new Date();
+ t.setDate(t.getDate() + days);
+ }
+
+ return (document.cookie = [
+ encode(key), '=', stringifyCookieValue(value),
+ options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
+ options.path ? '; path=' + options.path : '',
+ options.domain ? '; domain=' + options.domain : '',
+ options.secure ? '; secure' : ''
+ ].join(''));
+ }
+
+ // Read
+
+ var result = key ? undefined : {};
+
+ // To prevent the for loop in the first place assign an empty array
+ // in case there are no cookies at all. Also prevents odd result when
+ // calling $.cookie().
+ var cookies = document.cookie ? document.cookie.split('; ') : [];
+
+ for (var i = 0, l = cookies.length; i < l; i++) {
+ var parts = cookies[i].split('=');
+ var name = decode(parts.shift());
+ var cookie = parts.join('=');
+
+ if (key && key === name) {
+ // If second argument (value) is a function it's a converter...
+ result = read(cookie, value);
+ break;
+ }
+
+ // Prevent storing a cookie that we couldn't decode.
+ if (!key && (cookie = read(cookie)) !== undefined) {
+ result[name] = cookie;
+ }
+ }
+
+ return result;
+ };
+
+ config.defaults = {};
+
+ $.removeCookie = function (key, options) {
+ if ($.cookie(key) !== undefined) {
+ // Must not alter options, thus extending a fresh object...
+ $.cookie(key, '', $.extend({}, options, { expires: -1 }));
+ return true;
+ }
+ return false;
+ };
+
+}));
--- /dev/null
+{% if entries|length > 1 %}
+ <ul id="sort">
+ <li><a href="./?sort=ia&view={{ view }}&id={{ id }}"><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&view={{ view }}&id={{ id }}"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by date desc" %}" title="{% trans "by date desc" %}" /></a></li>
+ <li><a href="./?sort=ta&view={{ view }}&id={{ id }}"><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&view={{ view }}&id={{ id }}"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by title desc" %}" title="{% trans "by title desc" %}" /></a></li>
+ </ul>
+{% endif %}
{% include '_menu.twig' %}
{% endblock %}
{% block precontent %}
- {% if entries|length > 1 %}
- <ul id="sort">
- <li><a href="./?sort=ia&view={{ view }}&id={{ id }}"><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&view={{ view }}&id={{ id }}"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by date desc" %}" title="{% trans "by date desc" %}" /></a></li>
- <li><a href="./?sort=ta&view={{ view }}&id={{ id }}"><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&view={{ view }}&id={{ id }}"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by title desc" %}" title="{% trans "by title desc" %}" /></a></li>
- </ul>
- {% endif %}
+ {% include '_sorting.twig' %}
{% endblock %}
{% block content %}
{% if tag %}