aboutsummaryrefslogtreecommitdiff
path: root/captain/web.f90
diff options
context:
space:
mode:
authorJeffrey Armstrong <jeff@approximatrix.com>2021-05-17 10:16:40 -0400
committerJeffrey Armstrong <jeff@approximatrix.com>2021-05-17 10:16:40 -0400
commitbbc986be5425c6abdddb6eaab6dca1b5054c43e0 (patch)
treeef603995051fc7b121a0d84170e8fcd2257beb04 /captain/web.f90
parentb52aa3bf2b9cbb529b861566f6dbed24483c0b67 (diff)
downloadlevitating-bbc986be5425c6abdddb6eaab6dca1b5054c43e0.tar.gz
levitating-bbc986be5425c6abdddb6eaab6dca1b5054c43e0.zip
Added pager to jobs list on instructions page as well.
Diffstat (limited to 'captain/web.f90')
-rw-r--r--captain/web.f9056
1 files changed, 35 insertions, 21 deletions
diff --git a/captain/web.f90 b/captain/web.f90
index c76e053..638e0c3 100644
--- a/captain/web.f90
+++ b/captain/web.f90
@@ -54,23 +54,20 @@ contains
end subroutine build_request_object
function html_link(link, label) result(res)
+ use request_utils, only: build_link
implicit none
character(*), intent(in)::link, label
character(len=:), pointer::res
- integer::nl
-
- nl = len_trim(link) + len_trim(label) + len('<a href=""></a>')
- allocate(character(len=nl)::res)
- res = '<a href="'//trim(link)//'">'//trim(label)//'</a>'
+ res => build_link(link, label, .false.)
end function html_link
function generate_one_instuction_html(req) result(res)
use captain_db
use server_response
- use request_utils, only: get_status_utf8, render_jobs_links
+ use request_utils, only: get_status_utf8, render_jobs_links, generate_simple_pager
implicit none
type(request)::req
@@ -81,9 +78,9 @@ contains
type(job), dimension(:), pointer::jobs
integer, dimension(:), pointer::players
character(len=PLAYER_NAME_LENGTH), dimension(:), pointer::all_players
- integer::i, j, n_jobs, n_players, nsize
+ integer::i, j, n_jobs, n_players, nsize, job_start_index
- character(len=:), pointer::job_link_text, one_link
+ character(len=:), pointer::job_link_text, one_link, pager
character(1)::nl = new_line(' ')
character(PLAYER_NAME_LENGTH)::player_name
character(4)::player_status
@@ -95,11 +92,24 @@ contains
jobs => get_jobs_for_instruction(id_from_req)
if(associated(jobs)) then
+
+ if(associated(req%query_string)) then
+ read(req%query_string, *) job_start_index
+ else
+ job_start_index = 1
+ end if
+
n_jobs = size(jobs)
- job_link_text => render_jobs_links(jobs, gemini_mode=.false., link_prefix="../")
+ job_link_text => render_jobs_links(jobs, gemini_mode=.false., &
+ link_prefix="../", startindex=job_start_index, &
+ stopindex=min(job_start_index+4, n_jobs))
+
else
+
+ job_start_index = 0
n_jobs = 0
job_link_text => null()
+
end if
players => get_instruction_players(id_from_req)
@@ -155,8 +165,18 @@ contains
if(n_jobs == 0) then
res = trim(res)//nl//"None Yet"
else
+
+ pager => generate_simple_pager(job_start_index, job_start_index + 4, 5, n_jobs, req%page,.false.)
+
res = trim(res)//nl//job_link_text
+
+ if(associated(pager)) then
+ res = trim(res)//nl//pager
+ deallocate(pager)
+ end if
+
deallocate(job_link_text)
+
end if
all_players => get_player_names()
@@ -479,7 +499,7 @@ contains
function generate_jobs_html(req) result(res)
use captain_db
use server_response
- use request_utils, only: render_jobs_links
+ use request_utils, only: render_jobs_links, generate_simple_pager
use logging
implicit none
@@ -489,8 +509,7 @@ contains
integer::n, nsize
integer::i_start_jobs, ierr
- character(len=:), pointer::linklist
- character(10)::pager
+ character(len=:), pointer::linklist, pager
n = get_jobs_count()
if(n == 0) then
@@ -522,16 +541,11 @@ contains
res = trim(res)//new_line(' ')//trim(linklist)
! Pagers
- res = trim(res)//new_line(' ')//"<p>"
- if(i_start_jobs /= 1) then
- write(pager, '(I8)') max(i_start_jobs - 15, 1)
- res = trim(res)//'<a href="jobs.html?'//trim(adjustl(pager))//'">&lt;&lt; Newer</a> |'
- end if
- if(i_start_jobs+14 < n) then
- write(pager, '(I8)') i_start_jobs + 15
- res = trim(res)//' <a href="jobs.html?'//trim(adjustl(pager))//'">Older &gt;&gt;</a>'
+ pager => generate_simple_pager(i_start_jobs, min(i_start_jobs+14, n), 15, n, req%page, .false.)
+ if(associated(pager)) then
+ res = trim(res)//new_line(' ')//pager
+ deallocate(pager)
end if
- res = trim(res)//"</p>"
deallocate(linklist)