diff options
author | Cédric Bonhomme <cedric@cedricbonhomme.org> | 2014-06-29 00:05:41 +0200 |
---|---|---|
committer | Cédric Bonhomme <cedric@cedricbonhomme.org> | 2014-06-29 00:05:41 +0200 |
commit | 1961a9776846d63fc5e71848552b338850225f35 (patch) | |
tree | c36f7acee972191531d0a95933c9831b17772f6d | |
parent | Delete article from the Whoosh indew when article has been deleted via the RE... (diff) | |
download | newspipe-1961a9776846d63fc5e71848552b338850225f35.tar.gz newspipe-1961a9776846d63fc5e71848552b338850225f35.tar.bz2 newspipe-1961a9776846d63fc5e71848552b338850225f35.zip |
A little bit more JavaScript.
-rw-r--r-- | pyaggr3g470r/rest.py | 1 | ||||
-rw-r--r-- | pyaggr3g470r/static/js/articles.js | 79 | ||||
-rw-r--r-- | pyaggr3g470r/templates/article.html | 8 | ||||
-rw-r--r-- | pyaggr3g470r/templates/home.html | 61 | ||||
-rw-r--r-- | pyaggr3g470r/templates/layout.html | 4 |
5 files changed, 88 insertions, 65 deletions
diff --git a/pyaggr3g470r/rest.py b/pyaggr3g470r/rest.py index 8de9608e..f5c315c4 100644 --- a/pyaggr3g470r/rest.py +++ b/pyaggr3g470r/rest.py @@ -33,6 +33,7 @@ from flask import g, Response, request, session, jsonify from flask.ext.restful import Resource, reqparse #from flask.ext.restful.inputs import boolean +import conf if not conf.ON_HEROKU: import search as fastsearch from pyaggr3g470r import api, db diff --git a/pyaggr3g470r/static/js/articles.js b/pyaggr3g470r/static/js/articles.js new file mode 100644 index 00000000..a4d68419 --- /dev/null +++ b/pyaggr3g470r/static/js/articles.js @@ -0,0 +1,79 @@ +/*! +* pyAggr3g470r - A Web based news aggregator. +* Copyright (C) 2010-2014 Cédric Bonhomme - http://cedricbonhomme.org/ +* +* For more information : https://bitbucket.org/cedricbonhomme/pyaggr3g470r/ +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU Affero General Public License as +* published by the Free Software Foundation, either version 3 of the +* License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Affero General Public License for more details. +* +* You should have received a copy of the GNU Affero General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +if (typeof jQuery === 'undefined') { throw new Error('Requires jQuery') } + ++function ($) { + + // Like or unlike an article + $('.like').on('click', function() { + var article_id = $(this).parent().parent().parent().attr("data-article"); + + var data; + if ($(this).hasClass("glyphicon-star")) { + data = JSON.stringify({ + like: false + }) + $(this).removeClass('glyphicon-star').addClass('glyphicon-star-empty'); + } + else { + data = JSON.stringify({ + like: true + }) + $(this).removeClass('glyphicon-star-empty').addClass('glyphicon-star'); + } + + // sends the updates to the server + $.ajax({ + type: 'PUT', + // Provide correct Content-Type, so that Flask will know how to process it. + contentType: 'application/json', + // Encode your data as JSON. + data: data, + // This is the type of data you're expecting back from the server. + url: "/api/v1.0/articles/"+article_id, + success: function (result) { + //console.log(result); + }, + error: function(XMLHttpRequest, textStatus, errorThrown){ + console.log(XMLHttpRequest.responseText); + } + }); + }); + + // Delete an article + $('.delete').on('click', function() { + var article_id = $(this).parent().parent().parent().attr("data-article"); + $(this).parent().parent().parent().remove(); + + // sends the updates to the server + $.ajax({ + type: 'DELETE', + url: "/api/v1.0/articles/"+article_id, + success: function (result) { + //console.log(result); + }, + error: function(XMLHttpRequest, textStatus, errorThrown){ + console.log(XMLHttpRequest.responseText); + } + }); + }); + +}(jQuery); diff --git a/pyaggr3g470r/templates/article.html b/pyaggr3g470r/templates/article.html index 2dbdb8de..02f373b6 100644 --- a/pyaggr3g470r/templates/article.html +++ b/pyaggr3g470r/templates/article.html @@ -4,16 +4,16 @@ <script src="https://apis.google.com/js/plusone.js"></script> {% endblock %} {% block content %} -<div class="container"> +<div class="container" data-article="{{ article.id }}"> <div class="jumbotron"> <h2><a href="{{ article.link }}">{{ article.title|safe }}</a></h2> <h3>{{ _('from') }} <a href="/feed/{{ article.source.id }}">{{ article.source.title }}</a></h3> <a href="/delete/{{ article.id }}"><i class="glyphicon glyphicon-remove" title="{{ _('Delete this article') }}"></i></a> - <a href="/like/{{ article.id }}"> + <a href="#"> {% if article.like %} - <i class="glyphicon glyphicon-star" title="{{ _('One of your favorites') }}"></i> + <i class="glyphicon glyphicon-star like" title="{{ _('One of your favorites') }}"></i> {% else %} - <i class="glyphicon glyphicon-star-empty" title="{{ _('Click if you like this article') }}"></i> + <i class="glyphicon glyphicon-star-empty like" title="{{ _('Click if you like this article') }}"></i> {% endif %} </a> {% if article.readed %} diff --git a/pyaggr3g470r/templates/home.html b/pyaggr3g470r/templates/home.html index 3db5eb87..95fa3b44 100644 --- a/pyaggr3g470r/templates/home.html +++ b/pyaggr3g470r/templates/home.html @@ -132,63 +132,4 @@ {% endif %} </div><!-- /.container --> {% endif %} - -<script type="text/javascript" class="source"> - -$(document).ready(function() { - // Like or unlike an article - $('.like').on('click', function() { - var article_id = $(this).parent().parent().parent().attr("data-article"); - - var data; - if ($(this).hasClass("glyphicon-star")) { - data = JSON.stringify({ - like: false - }) - $(this).removeClass('glyphicon-star').addClass('glyphicon-star-empty'); - } - else { - data = JSON.stringify({ - like: true - }) - $(this).removeClass('glyphicon-star-empty').addClass('glyphicon-star'); - } - - // sends the updates to the server - $.ajax({ - type: 'PUT', - // Provide correct Content-Type, so that Flask will know how to process it. - contentType: 'application/json', - // Encode your data as JSON. - data: data, - // This is the type of data you're expecting back from the server. - url: "/api/v1.0/articles/"+article_id, - success: function (result) { - //console.log(result); - }, - error: function(XMLHttpRequest, textStatus, errorThrown){ - console.log(XMLHttpRequest.responseText); - } - }); // ajax closed - }); - - // Delete an article - $('.delete').on('click', function() { - var article_id = $(this).parent().parent().parent().attr("data-article"); - $(this).parent().parent().parent().remove(); - - // sends the updates to the server - $.ajax({ - type: 'DELETE', - url: "/api/v1.0/articles/"+article_id, - success: function (result) { - //console.log(result); - }, - error: function(XMLHttpRequest, textStatus, errorThrown){ - console.log(XMLHttpRequest.responseText); - } - }); // ajax closed - }); -}) -</script> -{% endblock %} +{% endblock %}
\ No newline at end of file diff --git a/pyaggr3g470r/templates/layout.html b/pyaggr3g470r/templates/layout.html index 10b802a2..6f159143 100644 --- a/pyaggr3g470r/templates/layout.html +++ b/pyaggr3g470r/templates/layout.html @@ -10,7 +10,7 @@ deployed on Heroku or on a traditional server." /> <title>{% if head_title %}{{ head_title }} - {% endif %}pyAggr3g470r</title> - <script src="{{ url_for('.static', filename = 'js/jquery.js') }}"></script> + <link rel="shortcut icon" href="{{ url_for('.static', filename='img/favicon.png') }}" /> @@ -164,6 +164,8 @@ deployed on Heroku or on a traditional server." /> <!-- Bootstrap core JavaScript --> <!-- Placed at the end of the document so the pages load faster --> + <script src="{{ url_for('.static', filename = 'js/jquery.js') }}"></script> <script src="{{ url_for('.static', filename = 'js/bootstrap.js') }}"></script> + <script src="{{ url_for('.static', filename = 'js/articles.js') }}"></script> </body> </html> |