]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
a lot of refactoring: tag action is now handled by home view and uses sorting and... 478/head
authorMaryana Rozhankivska <mariroz@mr.lviv.ua>
Thu, 20 Feb 2014 17:28:39 +0000 (19:28 +0200)
committerMaryana Rozhankivska <mariroz@mr.lviv.ua>
Thu, 20 Feb 2014 17:28:39 +0000 (19:28 +0200)
15 files changed:
inc/poche/Database.class.php [changed mode: 0644->0755]
inc/poche/Poche.class.php
inc/poche/Tools.class.php
themes/baggy/_menu.twig
themes/baggy/css/main.css
themes/baggy/edit-tags.twig
themes/baggy/home.twig
themes/baggy/tag.twig [deleted file]
themes/courgette/home.twig
themes/default/edit-tags.twig
themes/default/home.twig
themes/default/tag.twig [deleted file]
themes/default/view.twig
themes/solarized-dark/css/style-solarized-dark.css
themes/solarized/css/style-solarized.css

old mode 100644 (file)
new mode 100755 (executable)
index a366e86..c998fe1
 
 class Database {
     var $handle;
-
-    function __construct()
+    private $order = array(
+      'ia' => 'ORDER BY entries.id',
+      'id' => 'ORDER BY entries.id DESC',
+      'ta' => 'ORDER BY lower(entries.title)',
+      'td' => 'ORDER BY lower(entries.title) DESC',
+      'default' => 'ORDER BY entries.id'
+    );
+
+    function __construct() 
     {
         switch (STORAGE) {
             case 'sqlite':
@@ -257,48 +264,62 @@ class Database {
         $query  = $this->executeQuery($sql, $params);
     }
 
-    public function getEntriesByView($view, $user_id, $limit = '') {
-        switch ($_SESSION['sort'])
-        {
-            case 'ia':
-                $order = 'ORDER BY id';
-                break;
-            case 'id':
-                $order = 'ORDER BY id DESC';
+    public function getEntriesByView($view, $user_id, $limit = '', $tag_id = 0) {
+        switch ($view) {
+            case 'archive':
+                $sql    = "SELECT * FROM entries WHERE user_id=? AND is_read=? ";
+                $params = array($user_id, 1);
                 break;
-            case 'ta':
-                $order = 'ORDER BY lower(title)';
+            case 'fav' :
+                $sql    = "SELECT * FROM entries WHERE user_id=? AND is_fav=? ";
+                $params = array($user_id, 1);
                 break;
-            case 'td':
-                $order = 'ORDER BY lower(title) DESC';
+            case 'tag' :
+                $sql    = "SELECT entries.* FROM entries
+                LEFT JOIN tags_entries ON tags_entries.entry_id=entries.id
+                WHERE entries.user_id=? AND tags_entries.tag_id = ? ";
+                $params = array($user_id, $tag_id);
                 break;
             default:
-                $order = 'ORDER BY id';
+                $sql    = "SELECT * FROM entries WHERE user_id=? AND is_read=? ";
+                $params = array($user_id, 0);
                 break;
         }
 
-        switch ($view)
-        {
+                $sql .= $this->getEntriesOrder().' ' . $limit;
+
+                $query = $this->executeQuery($sql, $params);
+                $entries = $query->fetchAll();
+
+                return $entries;
+        }
+
+    public function getEntriesByViewCount($view, $user_id, $tag_id = 0) {\r
+        switch ($view) {\r
             case 'archive':
-                $sql    = "SELECT * FROM entries WHERE user_id=? AND is_read=? " . $order;
+                    $sql    = "SELECT count(*) FROM entries WHERE user_id=? AND is_read=? ";\r
                 $params = array($user_id, 1);
                 break;
             case 'fav' :
-                $sql    = "SELECT * FROM entries WHERE user_id=? AND is_fav=? " . $order;
+                    $sql    = "SELECT count(*) FROM entries WHERE user_id=? AND is_fav=? ";\r
                 $params = array($user_id, 1);
                 break;
+            case 'tag' :\r
+                $sql    = "SELECT count(*) FROM entries\r
+                    LEFT JOIN tags_entries ON tags_entries.entry_id=entries.id\r
+                    WHERE entries.user_id=? AND tags_entries.tag_id = ? ";\r
+                $params = array($user_id, $tag_id);\r
+                break;\r
             default:
-                $sql    = "SELECT * FROM entries WHERE user_id=? AND is_read=? " . $order;
+                $sql    = "SELECT count(*) FROM entries WHERE user_id=? AND is_read=? ";\r
                 $params = array($user_id, 0);
                 break;
         }
 
-        $sql .= ' ' . $limit;
-
         $query = $this->executeQuery($sql, $params);
-        $entries = $query->fetchAll();
+        list($count) = $query->fetch();
 
-        return $entries;
+        return $count;\r
     }
 
     public function updateContent($id, $content, $user_id) {
@@ -420,4 +441,14 @@ class Database {
         $query = $this->executeQuery($sql_action, $params_action);
         return $query;
     }
+
+        private function getEntriesOrder() {
+            if (isset($_SESSION['sort']) and array_key_exists($_SESSION['sort'], $this->order)) {
+                return $this->order[$_SESSION['sort']];
+            }
+            else {
+                return $this->order['default'];
+            }
+        }
+
 }
index fc9a455ae5feace87f4c92de0674340ed5401293..23e51c7e5467a523ad921d465b3bcc43114dfdad 100755 (executable)
@@ -585,14 +585,7 @@ class Poche
                 $tpl_vars = array(
                     'entry_id' => $id,
                     'tags' => $tags,
-                );
-                break;
-            case 'tag':
-                $entries = $this->store->retrieveEntriesByTag($id, $this->user->getId());
-                $tag = $this->store->retrieveTag($id, $this->user->getId());
-                $tpl_vars = array(
-                    'tag' => $tag,
-                    'entries' => $entries,
+                    'entry' => $entry,
                 );
                 break;
             case 'tags':
@@ -633,22 +626,28 @@ class Poche
                     Tools::logm('error in view call : entry is null');
                 }
                 break;
-            default: # home, favorites and archive views 
-                $entries = $this->store->getEntriesByView($view, $this->user->getId());
+            default: # home, favorites, archive and tag views
                 $tpl_vars = array(
                     'entries' => '',
                     'page_links' => '',
                     'nb_results' => '',
                 );
                 
-                if (count($entries) > 0) {
-                    $this->pagination->set_total(count($entries));
+                //if id is given - we retrive entries by tag: id is tag id
+                if ($id) {
+                  $tpl_vars['tag'] = $this->store->retrieveTag($id, $this->user->getId());
+                  $tpl_vars['id'] = intval($id);
+                }
+
+                $count = $this->store->getEntriesByViewCount($view, $this->user->getId(), $id);
+
+                if ($count > 0) {
+                    $this->pagination->set_total($count);
                     $page_links = str_replace(array('previous', 'next'), array(_('previous'), _('next')),
-                        $this->pagination->page_links('?view=' . $view . '&sort=' . $_SESSION['sort'] . '&'));
-                    $datas = $this->store->getEntriesByView($view, $this->user->getId(), $this->pagination->get_limit());
-                    $tpl_vars['entries'] = $datas;
+                        $this->pagination->page_links('?view=' . $view . '&sort=' . $_SESSION['sort'] . (($id)?'&id='.$id:'') . '&' ));
+                    $tpl_vars['entries'] = $this->store->getEntriesByView($view, $this->user->getId(), $this->pagination->get_limit(), $id);
                     $tpl_vars['page_links'] = $page_links;
-                    $tpl_vars['nb_results'] = count($entries);
+                    $tpl_vars['nb_results'] = $count;
                 }
                 Tools::logm('display ' . $view . ' view');
                 break;
index 515a08aac294567e2e5b223a7b7bd81205b51d2b..4ed28ed1b07a925991feeef349c498369c79cd9b 100644 (file)
@@ -92,7 +92,7 @@ class Tools
     {
         $views = array(
             'install', 'import', 'export', 'config', 'tags',
-            'edit-tags', 'view', 'login', 'error', 'tag'
+            'edit-tags', 'view', 'login', 'error'
             );
 
         if (in_array($view, $views)) {
index 3e7a2cbf73a9a4ecc99ac5760024b260ec65c4de..e9cd9d4ad8affb7718730e2b1ae61bb8c9bf62b9 100644 (file)
@@ -4,6 +4,9 @@
                 <li><a href="./?view=fav" {% if view == 'fav' %}class="current"{% endif %}>{% trans "favorites" %}</a></li>
                 <li><a href="./?view=archive" {% if view == 'archive' %}class="current"{% endif %}>{% trans "archive" %}</a></li>
                 <li><a href="./?view=tags" {% if view == 'tags' %}class="current"{% endif %}>{% trans "tags" %}</a></li>
+                <li><a href="javascript: void(null);" id="pocheit">{% trans "save a link" %}</a></li>
                 <li><a href="./?view=config" {% if view == 'config' %}class="current"{% endif %}>{% trans "config" %}</a></li>
                 <li><a class="icon icon-power" href="./?logout" title="{% trans "logout" %}">{% trans "logout" %}</a></li>
-            </ul>
\ No newline at end of file
+            </ul>
+
+            {% include '_pocheit-form.twig' %}
index 45211a8700ea8f7544a659aba76efb5298d3b209..3b8220d962af23f676421c798c214330f48e2931 100755 (executable)
@@ -563,7 +563,8 @@ footer a {
    ========================================================================== */
 
 .messages {
-  text-align: center;
+  text-align: left;
+  margin-top: 1em;
 }
 
 .messages > * { display: inline-block;}
@@ -818,4 +819,4 @@ blockquote {
   #article_toolbar a {
     padding: 0.3em 0.4em 0.2em;
   }
-}
\ No newline at end of file
+}
index 9f11a2c3beedf38e0a44e6ae7131a94b8242d4fc..9e9012eea5a6b732d4db8b72df3fcd83d741512c 100644 (file)
@@ -4,6 +4,9 @@
 {% include '_menu.twig' %}
 {% endblock %}
 {% block content %}
+<div id="article">
+  <h2>{{ entry.title|raw }}</21>
+</div>
 {% if tags is empty %}
 <div class="notags">no tags</div>
 {% endif %}
 {% for tag in tags %}<li>{{ tag.value }} <a href="./?action=remove_tag&amp;tag_id={{ tag.id }}&amp;id={{ entry_id }}">✘</a></li>{% endfor %}
 </ul>
 <form method="post" action="./?action=add_tag">
-    <label for="value">Add tags: </label><input type="text" placeholder="interview, editorial, video" id="value" name="value" required="required" />
-    <p>{% trans "You can enter multiple tags, separated by commas." %}</p>
     <input type="hidden" name="entry_id" value="{{ entry_id }}" />
+    <label for="value">Add tags: </label><input type="text" placeholder="interview, editorial, video" id="value" name="value" required="required" />
     <input type="submit" value="Tag" />
+    <p>{% trans "You can enter multiple tags, separated by commas." %}</p>
 </form>
 <a class="icon icon-reply return" href="./?view=view&id={{ entry_id }}">{% trans "return to article" %}</a>
 {% endblock %}
index 33afdbbd5fd33b3c1f92a17520b59fbac2c0a5a3..4f9db06382f6aedce95dda39a9ce2c3697414d66 100644 (file)
@@ -12,6 +12,9 @@
 {% include '_menu.twig' %}
 {% endblock %}
 {% block content %}
+            {% if tag %}
+                <h3>{% trans "Tag" %}: <b>{{ tag.value }}</b></h3>
+            {% endif %}
             {% if entries is empty %}
             <div class="messages warning"><p>{% trans "No articles found." %}</p></div>
             {% else %}
@@ -40,7 +43,7 @@
                     </ul>
                     <p>{{ entry.content|striptags|slice(0, 300) }}...</p>
                 </div>
-            
+
                 {% endfor %}
             </div>
             {% if view == 'home' %}{% if nb_results > 1 %}<a title="{% trans "Mark all the entries as read" %}"  href="./?action=archive_all">{{ "Mark all the entries as read" }}</a>{% endif %}{% endif %}
diff --git a/themes/baggy/tag.twig b/themes/baggy/tag.twig
deleted file mode 100644 (file)
index 141ac90..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-{% extends "layout.twig" %}
-{% block title %}tag {% endblock %}
-{% block menu %}
-{% include '_menu.twig' %}
-{% endblock %}
-{% block content %}
-    <h3>{% trans "Tag" %} {{ tag.value }}</h3>
-    {% if entries is empty %}
-    <div class="messages warning"><p>{% trans "No link available here!" %}</p></div>
-    {% else %}
-        {% block pager %}
-            {% if nb_results > 1 %}
-        <div class="results">
-            <div class="nb-results">{{ nb_results }} {% trans "results" %}</div>
-                {{ page_links | raw }}
-        </div>
-            {% endif %}
-        {% endblock %}
-    <div class="list-entries">    
-        {% for entry in entries %}
-            <div id="entry-{{ entry.id|e }}" class="entrie">
-                <h2><a href="index.php?view=view&amp;id={{ entry.id|e }}">{{ entry.title|raw }}</a></h2>
-                 <ul class="tools links">
-                    <li><a title="{% trans "Toggle mark as read" %}" class="tool icon-check icon {% 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>
-                    <li><a title="{% trans "toggle favorite" %}" class="tool icon-star icon {% 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>
-                    <li><a title="{% trans "delete" %}" class="tool delete icon-trash icon" href="./?action=delete&amp;id={{ entry.id|e }}"><span>{% trans "delete" %}</span></a></li>
-                    <li><a href="{{ entry.url|e }}" target="_blank" title="{% trans "original" %} : {{ entry.title|e }}" class="tool link icon-link icon"><span>{{ entry.url | e | getDomain }}</span></a></li>
-                </ul>
-                <p>{{ entry.content|striptags|slice(0, 300) }}...</p>
-            </div>
-        {% endfor %}
-    </div>
-    {% endif %}
-{% endblock %}
\ No newline at end of file
index 1367ebe833736ae15c3d17b1556a3d0ff3cdb4c8..416cfa4306109ea517cc6bb63296db9e7e11266f 100755 (executable)
@@ -14,8 +14,8 @@
 {% block precontent %}
             {% if entries|length > 1 %}
             <ul id="sort">
-                <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>
-                <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>
+                <li><a href="./?sort=ia&amp;view={{ view }}&amp;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&amp;view={{ view }}&amp;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&amp;view={{ view }}&amp;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&amp;view={{ view }}&amp;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 %}
 {% endblock %}
index 53852d392687b297bbc73ec0ba039bbfa39bb3a3..83f04aa0a94274615760b77a9e57b3812e5b3014 100644 (file)
@@ -4,6 +4,13 @@
 {% include '_menu.twig' %}
 {% endblock %}
 {% block content %}
+
+<div id="article">
+  <header class="mbm">
+      <h1>{{ entry.title|raw }}</h1>
+  </header>
+</div>
+
 {% if tags is empty %}
 no tags
 {% endif %}
@@ -11,10 +18,12 @@ no tags
 {% for tag in tags %}<li>{{ tag.value }} <a href="./?action=remove_tag&amp;tag_id={{ tag.id }}&amp;id={{ entry_id }}">✘</a></li>{% endfor %}
 </ul>
 <form method="post" action="./?action=add_tag">
-    <label for="value">Add tags: </label><input type="text" placeholder="interview, editorial, video" id="value" name="value" required="required" />
-    <p>{% trans "You can enter multiple tags, separated by commas." %}</p>
     <input type="hidden" name="entry_id" value="{{ entry_id }}" />
+    <label for="value">Add tags: </label>
+    <input type="text" placeholder="interview, editorial, video" id="value" name="value" required="required" />
     <input type="submit" value="Tag" />
+    <p>{% trans "You can enter multiple tags, separated by commas." %}</p>
+
 </form>
-<a href="./?view=view&id={{ entry_id }}">{% trans "return to article" %}</a>
+<a href="./?view=view&id={{ entry_id }}">&laquo; {% trans "return to article" %}</a>
 {% endblock %}
index 21013ec816c9a127b085fc7e74163cd22a77d20b..165fecc631e0a7bf6673e28b75295b98e2f4963f 100644 (file)
 {% block precontent %}
             {% if entries|length > 1 %}
             <ul id="sort">
-                <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>
-                <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>
+                <li><a href="./?sort=ia&amp;view={{ view }}&amp;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&amp;view={{ view }}&amp;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&amp;view={{ view }}&amp;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&amp;view={{ view }}&amp;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 %}
 {% endblock %}
 {% block content %}
+            {% if tag %}
+                <h3>{% trans "Tag" %}: <b>{{ tag.value }}</b></h3>
+            {% endif %}
+
             {% if entries is empty %}
             <div class="messages warning"><p>{% trans "No articles found." %}</p></div>
             {% else %}
diff --git a/themes/default/tag.twig b/themes/default/tag.twig
deleted file mode 100644 (file)
index 364c7cd..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-{% extends "layout.twig" %}
-{% block title %}tag {% endblock %}
-{% block menu %}
-{% include '_menu.twig' %}
-{% endblock %}
-{% block content %}
-    <h3>{% trans "Tag" %} {{ tag.value }}</h3>
-    {% if entries is empty %}
-    <div class="messages warning"><p>{% trans "No link available here!" %}</p></div>
-    {% else %}
-        {% block pager %}
-            {% if nb_results > 1 %}
-        <div class="results">
-            <div class="nb-results">{{ nb_results }} {% trans "results" %}</div>
-                {{ page_links | raw }}
-        </div>
-            {% endif %}
-        {% endblock %}
-        {% for entry in entries %}
-    <div id="entry-{{ entry.id|e }}" class="entrie">
-        <h2><a href="index.php?view=view&amp;id={{ entry.id|e }}">{{ entry.title|raw }}</a></h2>
-        <ul class="tools">
-            <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>
-            <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>
-            <li><a title="{% trans "delete" %}" class="tool delete" href="./?action=delete&amp;id={{ entry.id|e }}"><span>{% trans "delete" %}</span></a></li>
-            <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>
-            <li><a target="_blank" title="{% trans "estimated reading time:" %} {{ entry.content| getReadingTime }} min" class="reading-time"><span>{{ entry.content| getReadingTime }} min</span></a></li>
-        </ul>
-        <p>{{ entry.content|striptags|slice(0, 300) }}...</p>
-    </div>
-        {% endfor %}
-    {% endif %}
-{% endblock %}
\ No newline at end of file
index 9858996f38852e13c3c6ed240cd8ef7cc28a7caf..916abe0ddb0b14b615acf6c4c85ccff0bc382aea 100644 (file)
             <header class="mbm">
                 <h1>{{ entry.title|raw }}</h1>
             </header>
-            <aside class="tags">
-                {% trans "tags:" %} {% for tag in tags %}<a href="./?view=tag&amp;id={{ tag.id }}">{{ tag.value }}</a> {% endfor %}<a href="./?view=edit-tags&amp;id={{ entry.id|e }}" title="{% trans "Edit tags" %}">✎</a>
-            </aside>
+            {% block tags %}
+              <aside class="tags">
+                  {% trans "tags:" %} {% for tag in tags %}<a href="./?view=tag&amp;id={{ tag.id }}">{{ tag.value }}</a> {% endfor %}<a href="./?view=edit-tags&amp;id={{ entry.id|e }}" title="{% trans "Edit tags" %}">✎</a>
+              </aside>
+            {% endblock %}
             <article>
                 {{ content | raw }}
             </article>
+            {{ block('tags') }}
         </div>
         <script src="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/js/restoreScroll.js"></script>
         <script type="text/javascript">
@@ -50,5 +53,5 @@
                 $('#article_toolbar .tool.top').parent().hide();
             }
         });
-        </script> 
+        </script>
 {% endblock %}
index 3b0feb2a562b2e8144a29fb94d2a0cf0767f34ff..77a97d3828726f7bda48ac5fc21e1b125a85562b 100644 (file)
@@ -217,4 +217,16 @@ a.link span {
 
 a.bad-display span {
     background-image: url('../img/solarized-dark/bad-display.png');
+}
+
+.arrow-down {
+    width: 0px;
+    height: 0px;
+    border-style: solid;
+    border-width: 10px 10px 0 10px;
+    border-color: #586E75 transparent transparent transparent;
+
+    position: absolute;
+    margin-top: 1.5em;
+    margin-left: -30px;
 }
\ No newline at end of file
index 6058d056372e9827b3257abe1869fab48fe686f2..cf16338f4d4d08a48e02f1e9edbba8c51654874f 100644 (file)
@@ -217,4 +217,16 @@ a.link span {
 
 a.bad-display span {
     background-image: url('../img/solarized/bad-display.png');
+}
+
+.arrow-down {
+    width: 0px;
+    height: 0px;
+    border-style: solid;
+    border-width: 10px 10px 0 10px;
+    border-color: #93A1A1 transparent transparent transparent;
+
+    position: absolute;
+    margin-top: 1.5em;
+    margin-left: -30px;
 }
\ No newline at end of file