toggle open class fix

main
zvevqx 8 months ago
parent bc3317704e
commit c279d03028
  1. BIN
      __pycache__/app.cpython-313.pyc
  2. 41
      app.py
  3. 91
      static/main.bak
  4. 54
      static/main.js
  5. 2
      static/style.css
  6. 2
      templates/index.html

Binary file not shown.

@ -74,23 +74,6 @@ def info():
catList = Liste_cat() catList = Liste_cat()
return render_template('staticpage.html', page=page , catList=catList) return render_template('staticpage.html', page=page , catList=catList)
@app.route('/cat/<catname>')
def catPage(catname):
articles = (p for p in pages if 'published' in p.meta and 'cat' in p.meta and p.meta['cat']==catname )
latest = sorted(articles, reverse=True,
key=lambda p: p.meta['published'])
catList = Liste_cat()
return render_template('index.html', articles=latest , catList=catList )
@app.route('/author/<authorname>')
def authorPage(authorname):
articles = (p for p in pages if 'published' in p.meta and 'author' in p.meta and p.meta['author']==authorname )
latest = sorted(articles, reverse=True,
key=lambda p: p.meta['published'])
catList = Liste_cat()
return render_template('index.html', articles=latest , catList=catList )
@app.route('/pages/<path:path>') @app.route('/pages/<path:path>')
def serve_pages(path): def serve_pages(path):
return send_from_directory('pages', path) return send_from_directory('pages', path)
@ -101,30 +84,16 @@ def serve_pages(path):
def search(): def search():
query = request.form['query'] query = request.form['query']
print(query) print(query)
catList = Liste_cat()
# articles = (p for p in pages if 'published' in p.meta and query.lower() in metastr= lambda m : [item.lower() for item in list(p.meta.values())]) # articles = (p for p in pages if 'published' in p.meta and query.lower() in metastr= lambda m : [item.lower() for item in list(p.meta.values())])
articles = (p for p in pages if 'published' in p.meta and any(isinstance(value,str) and query.lower() in value.lower() for value in p.meta.values())) articles = (p for p in pages if 'published' in p.meta and any(isinstance(value,str) and query.lower() in value.lower() for value in p.meta.values()))
return render_template('index.html', articles=articles ,catList=catList) imgDict ={}
for a in articles:
g_path, imgs = imagelist(a.path)
imgDict[a.path]=imgs
@app.route('/webhook', methods=['POST']) return render_template('index.html', articles=articles ,imgDict=imgDict)
def webhook():
if request.method == 'POST':
repo_path = "http://192.168.178.21:3000/zvevqx/tdtdt.git" # Replace with the actual path
subprocess.run(['git', 'pull', repo_path])
return "Webhook received!"
def compute_signature(data, secret):
import hmac
import hashlib
return hmac.new(secret.encode('utf-8'), data, hashlib.sha256).hexdigest()
def restart_flask_app():
# Customize this function to restart your Flask app (e.g., using gunicorn, systemd, etc.)
# Example: subprocess.run(['systemctl', 'restart', 'your-flask-app.service'])
pass
@app.errorhandler(404) @app.errorhandler(404)

@ -0,0 +1,91 @@
$(document).ready(function(){
//$(".alist li").click(function(){
//console.log("lolololol");
//var ctnt = $(this).find('.content-wrapper')
//$(ctnt).toggleClass("open")
//});
const sortState = {};
// Function to sort articles
function sortArticles(columnClass) {
const $list = $('.alist');
const $listItems = $list.children('li');
// Determine sort direction
if (!sortState[columnClass]) {
sortState[columnClass] = 'asc';
} else {
sortState[columnClass] = (sortState[columnClass] === 'asc') ? 'desc' : 'asc';
}
// Sort the list items based on the text of the specified column
$listItems.sort(function(a, b) {
const aText = $(a).find('.' + columnClass).text().trim().toLowerCase();
const bText = $(b).find('.' + columnClass).text().trim().toLowerCase();
// Special handling for period (numeric sorting)
if (columnClass === 'period') {
const aNum = parseInt(aText);
const bNum = parseInt(bText);
return sortState[columnClass] === 'asc'
? aNum - bNum
: bNum - aNum;
}
// Default alphabetical sorting
return sortState[columnClass] === 'asc'
? aText.localeCompare(bText)
: bText.localeCompare(aText);
});
// Detach and reappend sorted items to maintain DOM structure
$list.empty().append($listItems);
// Optional: Visual indication of sort direction
$('.legend li ').removeClass('sort-asc sort-desc');
$(`.legend li[data-sort="${columnClass}"]`).addClass(sortState[columnClass] === 'asc' ? 'sort-asc' : 'sort-desc');
//$(`.legend li:contains("${columnClass}")`).addClass(sortState[columnClass] === 'asc' ? 'sort-asc' : 'sort-desc');
//$(`.legend li `).attr('data-sort').addClass(sortState[columnClass] === 'asc' ? 'sort-asc' : 'sort-desc');
}
// Add click event to legend spans
$('.legend li ').on('click', function() {
// Get the class corresponding to the clicked span
//const columnClass = $(this).text().toLowerCase().replace(/\s+/g, '');
const columnClass = $(this).attr("data-sort")
// If the column exists in the article items, sort by that column
if ($('.alist li').first().find('.' + columnClass).length > 0) {
sortArticles(columnClass);
}
});
$(".alist li a ").click(function(e) {
// Prevent this event from interfering with sorting or default link behavior
// e.preventDefault();
console.log("lolololol");
var ctnt = $(this).find('.content-wrapper');
if (ctnt.length === 0) {
ctnt = $(this).closest('li').find('.content-wrapper');
}
$(ctnt).toggleClass("open");
});
//$(".alist").on('click', 'li', function(e) {
//// Prevent this event from interfering with sorting
//if ($(e.target).closest('.legend').length === 0) {
//console.log("lolololol");
//var ctnt = $(this).find('.content-wrapper');
//$(ctnt).toggleClass("open");
//}
//});
})

@ -1,12 +1,5 @@
$(document).ready(function() { $(document).ready(function() {
// Sorting state management
//$(".alist li").click(function(){
//console.log("lolololol");
//var ctnt = $(this).find('.content-wrapper')
//$(ctnt).toggleClass("open")
//});
const sortState = {}; const sortState = {};
// Function to sort articles // Function to sort articles
@ -44,18 +37,16 @@ $(document).ready(function(){
// Detach and reappend sorted items to maintain DOM structure // Detach and reappend sorted items to maintain DOM structure
$list.empty().append($listItems); $list.empty().append($listItems);
// Optional: Visual indication of sort direction // Update sort direction indicators
$('.legend li').removeClass('sort-asc sort-desc'); $('.legend li').removeClass('sort-asc sort-desc');
$(`.legend li[data-sort="${columnClass}"]`).addClass(sortState[columnClass] === 'asc' ? 'sort-asc' : 'sort-desc'); $(`.legend li[data-sort="${columnClass}"]`).addClass(
//$(`.legend li:contains("${columnClass}")`).addClass(sortState[columnClass] === 'asc' ? 'sort-asc' : 'sort-desc'); sortState[columnClass] === 'asc' ? 'sort-asc' : 'sort-desc'
//$(`.legend li `).attr('data-sort').addClass(sortState[columnClass] === 'asc' ? 'sort-asc' : 'sort-desc'); );
} }
// Add click event to legend spans // Add click event to legend spans for sorting
$('.legend li').on('click', function() { $('.legend li').on('click', function() {
// Get the class corresponding to the clicked span const columnClass = $(this).attr("data-sort");
//const columnClass = $(this).text().toLowerCase().replace(/\s+/g, '');
const columnClass = $(this).attr("data-sort")
// If the column exists in the article items, sort by that column // If the column exists in the article items, sort by that column
if ($('.alist li').first().find('.' + columnClass).length > 0) { if ($('.alist li').first().find('.' + columnClass).length > 0) {
@ -63,29 +54,16 @@ $(document).ready(function(){
} }
}); });
// Toggle content visibility
$(".alist").on('click', 'li', function(e) { $(".alist").on('click', 'li', function(e) {
// Prevent this event from interfering with sorting or default link behavior // Prevent sorting when clicking on content
e.preventDefault(); if (!$(e.target).closest('.legend').length) {
const $contentWrapper = $(this).find('.content-wrapper');
console.log("lolololol"); // Ensure content-wrapper is not inside a link or legend
var ctnt = $(this).find('.content-wrapper'); if (!$(e.target).closest('a, .legend').length) {
if (ctnt.length === 0) { $contentWrapper.toggleClass("open");
ctnt = $(this).closest('li').find('.content-wrapper'); }
} }
$(ctnt).toggleClass("open");
}); });
});
//$(".alist").on('click', 'li', function(e) {
//// Prevent this event from interfering with sorting
//if ($(e.target).closest('.legend').length === 0) {
//console.log("lolololol");
//var ctnt = $(this).find('.content-wrapper');
//$(ctnt).toggleClass("open");
//}
//});
})

@ -265,7 +265,7 @@ a:hover{
.open{ .open{
height:auto !important; height:auto !important;
max-height:2000px !important; max-height:2000px !important;
margin-top:10px; margin-top: 10px !important;
transition: max-height 0.25s ease-in; transition: max-height 0.25s ease-in;
} }

@ -4,7 +4,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge"> <meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>urbaniste dev site</title> <title>latitude dev site</title>
<link rel="stylesheet" type="text/css" href="{{url_for('static', filename='style.css')}}"> <link rel="stylesheet" type="text/css" href="{{url_for('static', filename='style.css')}}">
</head> </head>
<body> <body>

Loading…
Cancel
Save