From 1961a9776846d63fc5e71848552b338850225f35 Mon Sep 17 00:00:00 2001 From: Cédric Bonhomme Date: Sun, 29 Jun 2014 00:05:41 +0200 Subject: A little bit more JavaScript. --- pyaggr3g470r/rest.py | 1 + pyaggr3g470r/static/js/articles.js | 79 +++++++++++++++++++++++++++++++++++++ pyaggr3g470r/templates/article.html | 8 ++-- pyaggr3g470r/templates/home.html | 61 +--------------------------- pyaggr3g470r/templates/layout.html | 4 +- 5 files changed, 88 insertions(+), 65 deletions(-) create mode 100644 pyaggr3g470r/static/js/articles.js (limited to 'pyaggr3g470r') 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 . + */ + +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 @@ {% endblock %} {% block content %} -
+

{{ article.title|safe }}

{{ _('from') }} {{ article.source.title }}

- + {% if article.like %} - + {% else %} - + {% endif %} {% 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 %}
{% endif %} - - -{% 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." /> {% if head_title %}{{ head_title }} - {% endif %}pyAggr3g470r - + @@ -164,6 +164,8 @@ deployed on Heroku or on a traditional server." /> + + -- cgit