aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCédric Bonhomme <cedric@cedricbonhomme.org>2014-06-29 00:05:41 +0200
committerCédric Bonhomme <cedric@cedricbonhomme.org>2014-06-29 00:05:41 +0200
commit1961a9776846d63fc5e71848552b338850225f35 (patch)
treec36f7acee972191531d0a95933c9831b17772f6d
parentDelete article from the Whoosh indew when article has been deleted via the RE... (diff)
downloadnewspipe-1961a9776846d63fc5e71848552b338850225f35.tar.gz
newspipe-1961a9776846d63fc5e71848552b338850225f35.tar.bz2
newspipe-1961a9776846d63fc5e71848552b338850225f35.zip
A little bit more JavaScript.
-rw-r--r--pyaggr3g470r/rest.py1
-rw-r--r--pyaggr3g470r/static/js/articles.js79
-rw-r--r--pyaggr3g470r/templates/article.html8
-rw-r--r--pyaggr3g470r/templates/home.html61
-rw-r--r--pyaggr3g470r/templates/layout.html4
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>
bgstack15