X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit-ng%2Fstatic%2Fjs%2Fviews.js;h=605cb72928bc3e327e619a8deb8a14e97d213b20;hb=75c253ddeebc3421127d4a1987eecc1150dad51f;hp=e0f1a49af1312649af322c1de59b304550baa438;hpb=fb0cd39870e9842c7d4bb5583efff6591ddc4190;p=citadel.git diff --git a/webcit-ng/static/js/views.js b/webcit-ng/static/js/views.js index e0f1a49af..605cb7292 100644 --- a/webcit-ng/static/js/views.js +++ b/webcit-ng/static/js/views.js @@ -41,7 +41,8 @@ function render_room_view(gt_msg, lt_msg) forum_readmessages("ctdl-main", gt_msg, lt_msg); break; default: - document.getElementById("ctdl-main").innerHTML = "The view for " + current_room + " is " + current_view + " but there is no renderer." ; + document.getElementById("ctdl-main").innerHTML = + "The view for " + current_room + " is " + current_view + " but there is no renderer." ; break; } @@ -107,7 +108,10 @@ function forum_readmessages(target_div, gt_msg, lt_msg) // Render the divs (we will fill them in later) for (var i in msgs) { - document.getElementById(target_div).innerHTML += "
#" + msgs[i] + "
" ; + document.getElementById(target_div).innerHTML += + "
#" + msgs[i] + + "
" ; } if (lt_msg == 9999999999) { @@ -122,16 +126,35 @@ function forum_readmessages(target_div, gt_msg, lt_msg) } document.getElementById(target_div).innerHTML += "
" + - "" + - "link to msgs greater than " + newgt + "
" ; + "" + + "link to msgs greater than " + newgt + "" ; + } + + // Now figure out where to scroll to after rendering. + if (gt_msg > 0) + { + scroll_to = msgs[0]; + } + else if (lt_msg < 9999999999) + { + scroll_to = msgs[msgs.length-1]; + } + else if ( (logged_in) && (gt_msg == 0) && (lt_msg == 9999999999) ) + { + scroll_to = msgs[msgs.length-1]; + } + else + { + scroll_to = msgs[0]; // FIXME this is too naive } // Render the individual messages in the divs - render_messages(msgs, "ctdl_msg_", views.VIEW_BBS); + forum_render_messages(msgs, "ctdl_msg_", scroll_to) } else { - document.getElementById(target_div).innerHTML = original_text; // this will make the link reappear so the user can try again + // if xhr fails, this will make the link reappear so the user can try again + document.getElementById(target_div).innerHTML = original_text; } } }; @@ -140,19 +163,19 @@ function forum_readmessages(target_div, gt_msg, lt_msg) } -// Render a range of messages, in the view specified, with the div prefix specified +// Render a range of messages, with the div prefix specified // -function render_messages(msgs, prefix, view) +function forum_render_messages(msgs, prefix, scroll_to) { for (i=0; i" // begin message wrapper - + "
" // begin avatar FIXME move to a stylesheet - + " " // FIXME temporary avatar + "
" // begin message wrapper + + "
" // begin avatar + + "" + "
" // end avatar - + "
" // begin content - + "
" // begin header + + "
" // begin content + + "
" // begin header + "" // FIXME link to user profile + msg.from + " " @@ -189,6 +213,10 @@ function render_one(div, msgnum, view) { document.getElementById(div).innerHTML = "ERROR"; } + if (msgnum == scroll_to) + { + window.location.hash = div; + } } }; request.send();