changeset 594:8f9cf1bcbe76

admin: Dashboard UI cleaning, re-use utility function for page summaries.
author Ludovic Chabant <ludovic@chabant.com>
date Tue, 19 Jan 2016 21:34:26 -0800
parents 2713b54b5d76
children eeb205ab8583
files foodtruck/templates/dashboard.html foodtruck/views/main.py foodtruck/views/menu.py
diffstat 3 files changed, 27 insertions(+), 27 deletions(-) [+]
line wrap: on
line diff
--- a/foodtruck/templates/dashboard.html	Tue Jan 19 21:33:31 2016 -0800
+++ b/foodtruck/templates/dashboard.html	Tue Jan 19 21:34:26 2016 -0800
@@ -3,6 +3,24 @@
 {% block content %}
 <div class="container">
     <div class="row">
+        <div class="col-md-4 col-md-offset-8">
+        {% if needs_switch %}
+            <form action="{{url_switch}}" method="POST">
+            {% for site in sites %}
+                {% if site.name != site_name %}
+                <button type="submit" name="site_name" value="{{site.name}}" class="btn">Switch to {{site.display_name}}</button>
+                {% endif %}
+            {% endfor %}
+            </form>
+        {% endif %}
+        </div>
+    </div>
+    <div class="row">
+        <div class="col-md-12">
+            <h1>{{site_title}} <a href="{{url_preview}}"><span class="icon ion-arrow-right-c"></span></a></h1>
+        </div>
+    </div>
+    <div class="row">
         <div class="col-md-6">
             <h2><span class="icon ion-stats-bars"></span> Site Summary</h2>
             {% for s in sources %}
@@ -10,9 +28,6 @@
                 <a href="{{s.list_url}}">{{s.page_count}} {{s.name}}</a>
             </div>
             {% endfor %}
-
-            <h2><span class="icon ion-pinpoint"></span> Preview Site</h2>
-            <a href="{{url_preview}}">Preview {{site_name}}</a>
         </div>
         <div class="col-md-6">
             <h2><span class="icon ion-erlenmeyer-flask"></span> Work in Progress</h2>
@@ -38,12 +53,6 @@
             <p>No work in progress.</p>
             {% endif %}
 
-            <h2><span class="icon"></span> Switch Site</h2>
-            <form action="{{url_switch}}" method="POST">
-                {% for site in sites %}
-                <p><button type="submit" name="site_name" value="{{site.name}}" class="btn btn-link">{{site.display_name}}</a></p>
-                {% endfor %}
-            </form>
         </div>
     </div>
     <div class="row">
--- a/foodtruck/views/main.py	Tue Jan 19 21:33:31 2016 -0800
+++ b/foodtruck/views/main.py	Tue Jan 19 21:34:26 2016 -0800
@@ -3,11 +3,12 @@
 import logging
 from flask import (
         g, request,
-        render_template, url_for, redirect, make_response)
+        render_template, url_for, redirect)
 from flask.ext.login import login_user, logout_user, login_required
 from piecrust.configuration import parse_config_header
 from piecrust.rendering import QualifiedPage
 from piecrust.uriutil import split_uri
+from ..textutil import text_preview
 from ..views import with_menu_context
 from ..web import app, load_user, after_this_request
 
@@ -52,6 +53,7 @@
             data['edited_pages'].append(pd)
 
     data['site_name'] = site.name
+    data['site_title'] = site.piecrust_app.config.get('site/title', site.name)
     data['url_bake'] = url_for('bake_site')
     data['url_preview'] = url_for('preview_site_root', sitename=site.name)
 
@@ -62,6 +64,7 @@
             'display_name': v.get('name', k),
             'url': url_for('index', site_name=site_name)
             })
+    data['needs_switch'] = len(g.config.get('sites')) > 1
     data['url_switch'] = url_for('switch_site')
 
     with_menu_context(data)
@@ -90,20 +93,8 @@
     with open(fac.path, 'r', encoding='utf8') as fp:
         raw_text = fp.read()
 
-    preferred_length = 100
-    max_length = 150
     header, offset = parse_config_header(raw_text)
-    extract = raw_text[offset:offset + preferred_length]
-    if len(raw_text) > offset + preferred_length:
-        for i in range(offset + preferred_length,
-                       min(offset + max_length, len(raw_text))):
-            c = raw_text[i]
-            if c not in [' ', '\t', '\r', '\n']:
-                extract += c
-            else:
-                extract += '...'
-                break
-
+    extract = text_preview(raw_text, offset=offset)
     return {
             'title': qp.config.get('title'),
             'slug': slug,
--- a/foodtruck/views/menu.py	Tue Jan 19 21:33:31 2016 -0800
+++ b/foodtruck/views/menu.py	Tue Jan 19 21:34:26 2016 -0800
@@ -34,10 +34,10 @@
                 }
         entries.append(ctx)
 
-    entries.append({
-        'url': url_for('settings'),
-        'title': "Settings",
-        'icon': 'gear-b'})
+    # entries.append({
+    #     'url': url_for('settings'),
+    #     'title': "Settings",
+    #     'icon': 'gear-b'})
 
     for e in entries:
         needs_more_break = False