Navigation buttons

FossilOrigin-Name: 59bfcfb0ad3b7b3959f168c546a83f1ed52d1bf558a18f0934879999a3d74d0a
This commit is contained in:
me@ow.nekobit.net 2022-03-29 12:55:14 +00:00
parent 66c27577a4
commit 2bca7e5f60
4 changed files with 67 additions and 4 deletions

35
src/navigation.c Normal file
View file

@ -0,0 +1,35 @@
/*
* Treebird - Lightweight frontend for Pleroma
* Copyright (C) 2022 Nekobit
*
* 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 <https://www.gnu.org/licenses/>.
*/
#include "navigation.h"
#include "easprintf.h"
// Pages
#include "../static/navigation.chtml"
char* construct_navigation_box(char* prev_id, char* next_id, size_t* size)
{
char* nav_html;
size_t s = easprintf(&nav_html, data_navigation_html,
prev_id,
next_id);
if (size) *size = s;
return nav_html;
}

26
src/navigation.h Normal file
View file

@ -0,0 +1,26 @@
/*
* Treebird - Lightweight frontend for Pleroma
* Copyright (C) 2022 Nekobit
*
* 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 <https://www.gnu.org/licenses/>.
*/
#ifndef NAVIGATION_H
#define NAVIGATION_H
#include <stddef.h>
#include <mastodont.h>
char* construct_navigation_box(char* prev_id, char* next_id, size_t* size);
#endif // NAVIGATION_H

View file

@ -24,6 +24,7 @@
#include "status.h"
#include "easprintf.h"
#include "reply.h"
#include "navigation.h"
#include "../static/navigation.chtml"
@ -62,8 +63,9 @@ void tl_public(mastodont_t* api, int local)
// Create post box
post_box = construct_post_box(NULL, "", NULL);
navigation_box = construct_navigation_box();
easprintf(&output, "%s%s%s", post_box, status_format, data_navigation_html);
navigation_box = construct_navigation_box(
statuses[0].id, statuses[status_count].id, NULL);
easprintf(&output, "%s%s%s", post_box, status_format, navigation_box);
struct base_page b = {
.locale = L10N_EN_US,

View file

@ -11,7 +11,7 @@
<td class="nav-prev btn">
<form action="." method="get">
<label class="pointer">
<input type="hidden" name="offset" value="5">
<input type="hidden" name="max_id" value="%s">
<span class="nav-btn">Previous</span>
<input type="submit" class="hidden">
</label>
@ -20,7 +20,7 @@
<td class="nav-next btn">
<form action="." method="get">
<label class="pointer">
<input type="hidden" name="offset" value="5">
<input type="hidden" name="min_id" value="%s">
<span class="nav-btn">Next</span>
<input type="submit" class="hidden">
</label>