add syndicate-to options to micropub submit form

This commit is contained in:
Kyle Mahan 2015-02-10 08:51:02 -08:00
parent 32cdeaa781
commit 92f21aee03
7 changed files with 159 additions and 13 deletions

View file

@ -59,6 +59,18 @@ class User(db.Model):
def get_id(self):
return self.domain
def get_setting(self, key, default=None):
if self.settings is None:
return default
return self.settings.get(key, default)
def set_setting(self, key, value):
if self.settings is None:
self.settings = {}
else:
self.settings = dict(self.settings)
self.settings[key] = value
def __eq__(self, other):
if type(other) is type(self):
return self.domain == other.domain

View file

@ -11,16 +11,26 @@ $(function(){
function clickShowReplyForm(evt) {
var a = $(this);
evt.preventDefault();
$(".reply-form", a.parent()).css('display', 'inherit');
a.css('display', 'none');
$(".like-form", a.parent()).hide();
$(".reply-form", a.parent()).toggle();//css('display', 'inherit');
//a.css('display', 'none');
}
function clickShowLikeForm(evt) {
var a = $(this);
evt.preventDefault();
$(".reply-form", a.parent()).hide();
$(".like-form", a.parent()).toggle();
//a.css('display', 'none');
}
function submitMicropubForm(evt) {
evt.preventDefault();
var form = $(this);
var replyArea = form.parent();
var endpoint = form.attr('action');
var responseArea = $('.submit-response', form);
var responseArea = $('.micropub-response', replyArea);
$.post(
'/_forward',
@ -28,21 +38,26 @@ $(function(){
function(result) {
if (Math.floor(result.code / 100) == 2) {
responseArea.html('<a target="_blank" href="' + result.location + '">Success!</a>');
$(".reply-form textarea").val("");
$(".reply-form", replyArea).hide();
$(".like-form", replyArea).hide();
} else {
responseArea.html('Failure');
}
},
'json'
);
responseArea.html('Posting…');
}
function attachListeners() {
$(".reply-form").css('display', 'none');
$(".show-reply-form").css('display', 'inline');
$(".reply-form, .like-form").css('display', 'none');
$("#older-link").off('click').click(clickOlderLink);
$(".show-reply-form").off('click').click(clickShowReplyForm);
$(".show-like-form").off('click').click(clickShowLikeForm);
$(".like-form, .reply-form").off('submit').submit(submitMicropubForm);
}

View file

@ -433,7 +433,7 @@ textarea, input[type="text"], input[type="url"] {
.reply-area {
text-align: center; }
.reply-area a {
.reply-area .reply-link {
display: inline-block;
padding: 0.2em;
border: 1px solid #687D77;
@ -450,6 +450,32 @@ button {
form {
margin: 1em 0; }
.toggle {
font-family: sans-serif;
background-color: #eee;
display: inline-block;
border-radius: 4px;
padding: 0.2em 2em 0.2em 0.2em; }
.toggle input {
display: none; }
.toggle label {
font-weight: inherit;
/* override bootstrap */
margin: inherit;
/* override bootstrap */
position: relative;
transition: transform 0.1s;
cursor: pointer;
background-color: #ccc;
color: #666;
display: inline-block;
padding: 0.25em 1em;
border-radius: 3.8px; }
.toggle input:checked + label {
background-color: #337AB7;
color: #fff;
transform: translateX(1.8em); }
@media only screen and (max-width: 800px) {
article header img {
vertical-align: text-middle;

View file

@ -1,6 +1,6 @@
{
"version": 3,
"mappings": "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",
"mappings": "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",
"sources": ["normalize.scss","style.scss"],
"names": [],
"file": "style.css"

View file

@ -116,7 +116,7 @@ textarea, input[type="text"], input[type="url"] {
.reply-area {
text-align: center;
a {
.reply-link {
display: inline-block;
padding: 0.2em;
border: 1px solid $sirocco;
@ -127,6 +127,9 @@ textarea, input[type="text"], input[type="url"] {
min-width: 50px;
text-align: center;
}
.like-form, .reply-form {
}
}
button {
@ -137,6 +140,39 @@ form {
margin: 1em 0;
}
.toggle {
font-family: sans-serif;
background-color: #eee;
display: inline-block;
border-radius: 4px;
padding: 0.2em 2em 0.2em 0.2em;
input {
display: none;
}
label {
font-weight: inherit; /* override bootstrap */
margin: inherit; /* override bootstrap */
position: relative;
transition: transform 0.1s;
cursor: pointer;
background-color: #ccc;
color: #666;
display: inline-block;
padding: 0.25em 1em;
border-radius: 3.8px;
}
input:checked + label {
background-color: #337AB7;
color: #fff;
transform: translateX(1.8em);
}
}
@media only screen and (max-width: 800px) {
article {
header {

View file

@ -2,25 +2,51 @@
{% set replyMethod = settings.get('reply-method') %}
{% if replyMethod == 'micropub' and current_user.micropub_endpoint %}
<a class="reply-link show-like-form" href="#">Like</a>
<a class="reply-link show-reply-form" href="#">Reply</a>
<br/>
<form class="like-form" action="{{ current_user.micropub_endpoint }}" method="POST" style="display:inline">
<input type="hidden" name="access_token" value="{{current_user.access_token}}"/>
<input type="hidden" name="h" value="entry"/>
<input type="hidden" name="like-of" value="{{ entry.permalink }}"/>
<button type="submit" class="like-button">Like</button>
<span class="submit-response"></span>
</form>
<button class="show-reply-form">Reply</button>
{% for target in current_user.get_setting('syndicate-to', []) %}
{% set input_id = 'st-like-{}-{}'.format(entry.id, loop.index) %}
<div class="toggle">
<input id="{{ input_id }}" type="checkbox" name="syndicate-to[]"
value="{{ target }}"/>
<label for="{{ input_id }}">{{ target | prettify_url }}</label>
</div>
{% endfor %}
<br/>
<button type="submit" class="like-button">Like</button>
</form>
<form class="reply-form" action="{{ current_user.micropub_endpoint }}" method="POST">
<input type="hidden" name="access_token" value="{{current_user.access_token}}"/>
<input type="hidden" name="h" value="entry"/>
<input type="hidden" name="in-reply-to" value="{{ entry.permalink }}"/>
<textarea name="content"></textarea>
{% for target in current_user.get_setting('syndicate-to', []) %}
{% set input_id = 'st-reply-{}-{}'.format(entry.id, loop.index) %}
<div class="toggle">
<input id="{{ input_id }}" type="checkbox" name="syndicate-to[]"
value="{{ target }}"/>
<label for="{{ input_id }}">{{ target | prettify_url }}</label>
</div>
{% endfor %}
<br/>
<button type="submit" class="reply-button">Reply</button>
<span class="submit-response"></span>
</form>
<div class="micropub-response">
</div>
{% elif replyMethod == 'indie-config' %}
{% for action in settings.get('indie-config-actions', []) %}
<indie-action with="{{ entry.permalink }}" do="{{ action }}">

View file

@ -159,6 +159,7 @@ def login_callback(resp):
user.url = resp.me
db.session.commit()
flask_login.login_user(user, remember=True)
update_micropub_syndicate_to()
return flask.redirect(resp.next_url or flask.url_for('.index'))
@ -187,9 +188,31 @@ def micropub_callback(resp):
user.micropub_endpoint = resp.micropub_endpoint
user.access_token = resp.access_token
db.session.commit()
update_micropub_syndicate_to()
return flask.redirect(resp.next_url or flask.url_for('.index'))
@flask_login.login_required
def update_micropub_syndicate_to():
endpt = flask_login.current_user.micropub_endpoint
token = flask_login.current_user.access_token
if not endpt or not token:
return
resp = requests.get(endpt, params={
'q': 'syndicate-to',
}, headers={
'Authorization': 'Bearer ' + token,
})
if resp.status_code // 100 != 2:
flask.current_app.logger.warn(
'Unexpected response querying micropub endpoint %s: %s',
resp, resp.text)
return
syndicate_tos = urllib.parse.parse_qs(resp.text).get('syndicate-to[]', [])
flask_login.current_user.set_setting('syndicate-to', syndicate_tos)
db.session.commit()
@views.route('/deauthorize')
@flask_login.login_required
def deauthorize():
@ -312,6 +335,14 @@ def find_possible_feeds(origin):
return feeds
@views.app_template_filter()
def prettify_url(url):
parsed = urllib.parse.urlparse(url)
if parsed.path:
return parsed.netloc + parsed.path
return parsed.netloc
@views.app_template_global()
def url_for_other_page(page):
"""http://flask.pocoo.org/snippets/44/#URL+Generation+Helper