diff --git a/woodwind/static/style.css b/woodwind/static/style.css index 47a0c87..883cba3 100644 --- a/woodwind/static/style.css +++ b/woodwind/static/style.css @@ -438,12 +438,16 @@ article { label { font-weight: bold; display: inline-block; - margin-bottom: 5px; + margin: 5px 0 2px 0; max-width: 100%; } textarea, input[type="text"], input[type="url"] { width: 100%; - margin: 0.25em 0; } + margin: 0.25em 0; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + box-shadow: 0x 1px 1px rgba(0, 0, 0, 0.075) inset; } textarea.input-25, input[type="text"].input-25, input[type="url"].input-25 { width: 23%; } textarea.input-50, input[type="text"].input-50, input[type="url"].input-50 { @@ -451,6 +455,20 @@ textarea, input[type="text"], input[type="url"] { textarea.input-75, input[type="text"].input-75, input[type="url"].input-75 { width: 73%; } +button { + border: 1px solid #cccccc; + background: #efefef; + color: #003366; + border-radius: 4px; + padding: 4px 10px; + margin: 5px 5px 5px 0; + box-shadow: 0 1px 1px #ccc; } + button:hover { + background: white; } + button:active { + box-shadow: 0 0; + margin: 6px 4px 4px 1px; } + .micropub-form .content { height: 1em; width: calc(100% - 1.4em - 96px); diff --git a/woodwind/static/style.scss b/woodwind/static/style.scss index 867d0b5..7ca73da 100644 --- a/woodwind/static/style.scss +++ b/woodwind/static/style.scss @@ -127,7 +127,7 @@ article { label { font-weight: bold; display: inline-block; - margin-bottom: 5px; + margin: 5px 0 2px 0; max-width: 100%; } @@ -135,6 +135,11 @@ textarea, input[type="text"], input[type="url"] { width: 100%; margin: 0.25em 0; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + box-shadow: 0x 1px 1px rgba(0, 0, 0, 0.075) inset; + &.input-25 { width: 23%; } @@ -146,6 +151,24 @@ textarea, input[type="text"], input[type="url"] { } } +button { + border: 1px solid rgb(204, 204, 204); + background: #efefef; + color: #003366; + border-radius: 4px; + padding: 4px 10px; + margin: 5px 5px 5px 0; + box-shadow: 0 1px 1px #ccc; + &:hover { + background: white; + } + &:active { + box-shadow: 0 0; + margin: 6px 4px 4px 1px; + } +} + + .micropub-form { .content { height: 1em; diff --git a/woodwind/tasks.py b/woodwind/tasks.py index f4eff84..1e46e18 100644 --- a/woodwind/tasks.py +++ b/woodwind/tasks.py @@ -235,20 +235,19 @@ def notify_feed_updated(session, feed, entries): reverse=True) for s in feed.subscriptions: - for user in s.users: - with flask_app.test_request_context(): - flask_login.login_user(user, remember=True) - message = json.dumps({ - 'user': user.id, - 'feed': feed.id, - 'entries': [ - render_template('_entry.jinja2', feed=feed, entry=e) - for e in entries - ], - }) - for topic in ('user={}'.format(user.id), - 'user={}&feed={}'.format(user.id, feed.id)): - redis.publish('woodwind_notify:{}'.format(topic), message) + with flask_app.test_request_context(): + flask_login.login_user(s.user, remember=True) + message = json.dumps({ + 'user': s.user.id, + 'feed': feed.id, + 'entries': [ + render_template('_entry.jinja2', feed=feed, entry=e) + for e in entries + ], + }) + for topic in ('user:{}'.format(s.user.id), + 'subsc:{}'.format(s.id)): + redis.publish('woodwind_notify:{}'.format(topic), message) def is_content_equal(e1, e2): diff --git a/woodwind/templates/subscriptions.jinja2 b/woodwind/templates/subscriptions.jinja2 index c0e17c6..2b04a0d 100644 --- a/woodwind/templates/subscriptions.jinja2 +++ b/woodwind/templates/subscriptions.jinja2 @@ -20,33 +20,25 @@ {% for s in subscriptions %} -
+
+
+ + + + + + + + +
+ +
- View only posts from this feed + View Posts +
+ Show Details
-
- - - - - - -
- -
- - -
- -
- - -
- - - Show Details -
Details
    @@ -59,24 +51,37 @@
  • PuSH expiry: {{s.feed.push_expiry | relative_time}}
+ + +
+ + +
+ +
+ + +
+ +
{% endfor %} {% endblock body %} {% block foot %} - + }); + {% endblock foot %} diff --git a/woodwind/views.py b/woodwind/views.py index 63f4c54..13cc370 100644 --- a/woodwind/views.py +++ b/woodwind/views.py @@ -53,10 +53,9 @@ def index(): if not subsc: flask.abort(404) entry_query = entry_query.filter(Subscription.id == subsc_id) - ws_topic = 'user={}&feed={}'.format(subsc.user.id, - subsc.feed.id) + ws_topic = 'subsc:{}'.format(subsc.id) else: - ws_topic = 'user={}'.format(flask_login.current_user.id) + ws_topic = 'user:{}'.format(flask_login.current_user.id) entries = entry_query.order_by(Entry.retrieved.desc(), Entry.published.desc())\ @@ -130,9 +129,9 @@ def update_all(): def unsubscribe(): subsc_id = flask.request.form.get('id') subsc = Subscription.query.get(subsc_id) - subsc.delete() + db.session.delete(subsc) db.session.commit() - flask.flash('Unsubscribed {} ({})'.format(subsc.name)) + flask.flash('Unsubscribed {}'.format(subsc.name)) return flask.redirect(flask.url_for('.subscriptions'))