it's a banner
This commit is contained in:
parent
121179cc39
commit
eb42380c96
@ -56,6 +56,19 @@ class Author(db.Model):
|
||||
def __init__(self, author_name):
|
||||
self.author_name = author_name
|
||||
|
||||
|
||||
class UserIns(db.Model):
|
||||
__tablename__ = 'userins'
|
||||
|
||||
id = db.Column(db.Integer(), primary_key=True)
|
||||
title = db.Column(db.String(500))
|
||||
info = db.Column(db.String(500))
|
||||
|
||||
def __init__(self, title, info):
|
||||
self.title = title
|
||||
self.info = info
|
||||
|
||||
|
||||
class Stack(db.Model):
|
||||
__tablename__ = 'stacks'
|
||||
id = db.Column(db.Integer, primary_key = True)
|
||||
|
@ -23,7 +23,7 @@ $(function() {
|
||||
|
||||
//Remove row
|
||||
$this.find("button[data-toggle=fieldset-remove-row]").click(function() {
|
||||
if($this.find("[data-toggle=fieldset-entry]").length > 1) {
|
||||
if ($this.find("[data-toggle=fieldset-entry]").length > 1) {
|
||||
var thisRow = $(this).closest("[data-toggle=fieldset-entry]");
|
||||
thisRow.remove();
|
||||
}
|
||||
@ -32,91 +32,95 @@ $(function() {
|
||||
});
|
||||
|
||||
|
||||
$( function() {
|
||||
$( "#draggable" ).draggable();
|
||||
$( "#droppable" ).droppable({
|
||||
drop: function( event, ui ) {
|
||||
$( this )
|
||||
.addClass( "ui-state-highlight" )
|
||||
.find( "p" )
|
||||
.html( "Dropped!" );
|
||||
$(function() {
|
||||
$("#draggable").draggable();
|
||||
$("#droppable").droppable({
|
||||
drop: function(event, ui) {
|
||||
$(this)
|
||||
.addClass("ui-state-highlight")
|
||||
.find("p")
|
||||
.html("Dropped!");
|
||||
}
|
||||
});
|
||||
} );
|
||||
});
|
||||
|
||||
$( "#title" ).click(function() {
|
||||
$("#title").click(function() {
|
||||
generateTitle(this);
|
||||
});
|
||||
|
||||
$( document ).ready(function() {
|
||||
$(document).ready(function() {
|
||||
generateTitle("#title");
|
||||
});
|
||||
|
||||
function generateTitle(elem){
|
||||
var x = ["XPERIMENTAL"]
|
||||
var p1 = ["POTENTIAL", "PUBLIC", "POST", "PI", "PLATFORM FOR", "PRETENTIOUS"]
|
||||
var p2 = ["PIRATE", "PERFORMATIVE", "PUBLIC", "PUBLISHING", "POTENTIAL"]
|
||||
var l = ["LIBRARY", "LIAISON", "LAB", "LEGALITY", "LABOUR"]
|
||||
function generateTitle(elem) {
|
||||
var x = ["XPERIMENTAL"]
|
||||
var p1 = ["POTENTIAL", "PUBLIC", "POST", "PI", "PLATFORM FOR", "PRETENTIOUS"]
|
||||
var p2 = ["PIRATE", "PERFORMATIVE", "PUBLIC", "PUBLISHING", "POTENTIAL"]
|
||||
var l = ["LIBRARY", "LIAISON", "LAB", "LEGALITY", "LABOUR"]
|
||||
|
||||
$(elem).text(x[Math.floor(Math.random()*x.length)]+" "+p1[Math.floor(Math.random()*p1.length)]+" "+p2[Math.floor(Math.random()*p2.length)]+" "+l[Math.floor(Math.random()*l.length)]);
|
||||
$(elem).text(x[Math.floor(Math.random() * x.length)] + " " + p1[Math.floor(Math.random() * p1.length)] + " " + p2[Math.floor(Math.random() * p2.length)] + " " + l[Math.floor(Math.random() * l.length)]);
|
||||
|
||||
}
|
||||
|
||||
$( function() {
|
||||
$( "#tabs" ).tabs().addClass( "ui-tabs-vertical ui-helper-clearfix" );
|
||||
$( "#tabs li" ).removeClass( "ui-corner-top" ).addClass( "ui-corner-left" );
|
||||
} );
|
||||
|
||||
|
||||
var marquee = $('div.marquee');
|
||||
marquee.each(function() {
|
||||
var mar = $(this),indent = mar.width();
|
||||
mar.marquee = function() {
|
||||
indent--;
|
||||
mar.css('text-indent',indent);
|
||||
if (indent < -1 * mar.children('div.marquee-text').width()) {
|
||||
indent = mar.width();
|
||||
}
|
||||
};
|
||||
mar.data('interval',setInterval(mar.marquee,1000/60));
|
||||
$(function() {
|
||||
$("#tabs").tabs().addClass("ui-tabs-vertical ui-helper-clearfix");
|
||||
$("#tabs li").removeClass("ui-corner-top").addClass("ui-corner-left");
|
||||
});
|
||||
|
||||
|
||||
$( ".no_cover" ).each(function() {
|
||||
|
||||
|
||||
$(".no_cover").each(function() {
|
||||
var string = $(this).attr('id')
|
||||
var randomColor = colorHash(string).rgb
|
||||
|
||||
$(this).css({
|
||||
'background-color' : randomColor,
|
||||
'background-color': randomColor,
|
||||
});
|
||||
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
function colorHash(inputString){
|
||||
var sum = 0;
|
||||
function colorHash(inputString) {
|
||||
var sum = 0;
|
||||
|
||||
for(var i in inputString){
|
||||
sum += inputString.charCodeAt(i);
|
||||
for (var i in inputString) {
|
||||
sum += inputString.charCodeAt(i);
|
||||
}
|
||||
|
||||
r = ~~(('0.' + Math.sin(sum + 1).toString().substr(6)) * 256);
|
||||
g = ~~(('0.' + Math.sin(sum + 2).toString().substr(6)) * 256);
|
||||
b = ~~(('0.' + Math.sin(sum + 3).toString().substr(6)) * 256);
|
||||
|
||||
var rgb = "rgb(" + r + ", " + g + ", " + b + ")";
|
||||
|
||||
var hex = "#";
|
||||
|
||||
hex += ("00" + r.toString(16)).substr(-2, 2).toUpperCase();
|
||||
hex += ("00" + g.toString(18)).substr(-2, 2).toUpperCase();
|
||||
hex += ("00" + b.toString(20)).substr(-2, 2).toUpperCase();
|
||||
|
||||
return {
|
||||
r: r,
|
||||
g: g,
|
||||
b: b,
|
||||
rgb: rgb,
|
||||
hex: hex
|
||||
};
|
||||
}
|
||||
|
||||
r = ~~(('0.'+Math.sin(sum+1).toString().substr(6))*256);
|
||||
g = ~~(('0.'+Math.sin(sum+2).toString().substr(6))*256);
|
||||
b = ~~(('0.'+Math.sin(sum+3).toString().substr(6))*256);
|
||||
|
||||
var rgb = "rgb("+r+", "+g+", "+b+")";
|
||||
|
||||
var hex = "#";
|
||||
|
||||
hex += ("00" + r.toString(16)).substr(-2,2).toUpperCase();
|
||||
hex += ("00" + g.toString(18)).substr(-2,2).toUpperCase();
|
||||
hex += ("00" + b.toString(20)).substr(-2,2).toUpperCase();
|
||||
|
||||
return {
|
||||
r: r
|
||||
,g: g
|
||||
,b: b
|
||||
,rgb: rgb
|
||||
,hex: hex
|
||||
};
|
||||
}
|
||||
//newsticker
|
||||
var marquee = $('div.marquee');
|
||||
marquee.each(function() {
|
||||
var mar = $(this),
|
||||
indent = mar.width();
|
||||
mar.marquee = function() {
|
||||
indent--;
|
||||
mar.css('text-indent', indent);
|
||||
if (indent < -1 * mar.children('div.marquee-text').width()) {
|
||||
indent = mar.width();
|
||||
}
|
||||
};
|
||||
mar.data('interval', setInterval(mar.marquee, 10));
|
||||
});
|
||||
|
2377
app/static/js/bootstrap.js
vendored
2377
app/static/js/bootstrap.js
vendored
File diff suppressed because it is too large
Load Diff
7
app/static/js/bootstrap.min.js
vendored
7
app/static/js/bootstrap.min.js
vendored
File diff suppressed because one or more lines are too long
@ -21,7 +21,7 @@
|
||||
<div id="newstext">
|
||||
<div class='marquee'>
|
||||
<div class='marquee-text'>
|
||||
Testing this marquee function
|
||||
This is the XPPL ~ Library XPUB ~ Updates
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -47,6 +47,36 @@
|
||||
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
|
||||
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
|
||||
<script src="{{ url_for("static", filename="js/app.js") }}"></script>
|
||||
<script>
|
||||
|
||||
|
||||
|
||||
$( document ).ready(function() {
|
||||
update();
|
||||
function update() {
|
||||
$.ajax({
|
||||
url: "{{ url_for('get_updates') }}",
|
||||
type: 'GET',
|
||||
async: false,
|
||||
success : function(text)
|
||||
{
|
||||
response = text;
|
||||
$('.marquee-text').text(response)
|
||||
console.log(response)
|
||||
},
|
||||
cache: false,
|
||||
contentType: false,
|
||||
processData: false
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
</script>
|
||||
|
@ -4,9 +4,12 @@
|
||||
<h1 class="header" id="title">XPPL</h1>
|
||||
<p class="lead">This is the awesome library of Experimental Publishing. <br>
|
||||
This might only be one interface to this library:
|
||||
…
|
||||
</p>
|
||||
|
||||
<a href="{{url_for('scape')}}">Scape</a>
|
||||
<a href="{{url_for('show_books_grid')}}">Grid</a>
|
||||
<a href="{{url_for('show_books')}}">List</a>
|
||||
|
||||
|
||||
|
||||
{% endblock %}
|
||||
|
16
app/views.py
16
app/views.py
@ -10,7 +10,7 @@ from flask import Flask, render_template, request, redirect, url_for, flash, sen
|
||||
import json
|
||||
from sqlalchemy.sql.expression import func, select
|
||||
from app.forms import UploadForm, EditForm, SearchForm
|
||||
from app.models import Book, BookSchema, Author, AuthorSchema, Stack, StackSchema
|
||||
from app.models import Book, BookSchema, Author, AuthorSchema, Stack, StackSchema, UserIns
|
||||
from app.cover import get_cover
|
||||
|
||||
import os
|
||||
@ -69,6 +69,11 @@ def show_books():
|
||||
|
||||
return render_template('show_books.html', books=books, form=search)
|
||||
|
||||
@app.route('/updates', methods=['POST', 'GET'])
|
||||
def get_updates():
|
||||
userin = UserIns.query.filter_by(title="lastViewed").first()
|
||||
return "XPPL /////// Last viewed: " + userin.info + " /////// "
|
||||
|
||||
@app.route('/scape', methods=['POST', 'GET'])
|
||||
def scape():
|
||||
if request.method == 'POST':
|
||||
@ -82,7 +87,6 @@ def scape():
|
||||
return render_template('scape.html', books=books)
|
||||
|
||||
|
||||
|
||||
@app.route('/books_grid')
|
||||
def show_books_grid():
|
||||
books = db.session.query(Book).all() # or you could have used User.query.all()
|
||||
@ -91,6 +95,14 @@ def show_books_grid():
|
||||
@app.route('/books/<int:id>')
|
||||
def show_book_by_id(id):
|
||||
book = Book.query.get(id)
|
||||
userin = UserIns.query.filter_by(title="lastViewed").first()
|
||||
if userin != None:
|
||||
userin.info = book.title
|
||||
db.session.commit()
|
||||
else:
|
||||
user_info = UserIns("lastViewed", book.title)
|
||||
db.session.add(user_info)
|
||||
db.session.commit()
|
||||
if not book:
|
||||
return render_template('red_link.html', id=id)
|
||||
else:
|
||||
|
Loading…
Reference in New Issue
Block a user