Mercurial > hgbook
view web/javascript/hsbook.js @ 688:4bb10cfa3812
Make actual use of the preface.
author | Bryan O'Sullivan <bos@serpentine.com> |
---|---|
date | Thu, 26 Mar 2009 19:58:09 -0700 |
parents | ad304b606163 |
children |
line wrap: on
line source
function qid(id) { return id.replace(/([.:])/g, "\\$1"); } function beforeComment(formData, jqForm, options) { var form = jqForm[0]; if (!form.comment.value) { $(options.target + " span.comment_error").empty().append( "<span class=\"comment_error\">Your comment is empty</span>"); return false; } if (!form.name.value) { $(options.target + " span.comment_error").empty().append( "<span class=\"comment_error\">Please provide a name</span>"); return false; } $(options.target + " span.comment_error").empty().after( "<img src=\"figs/throbber.gif\" style=\"vertical-align: middle\"/>"); $(options.target + " input[@name=submit]").attr("disabled", true); } function ajaxifyForm(id) { var q = qid(id); $("#form_" + q).ajaxForm({ beforeSubmit: beforeComment, success: function() { ajaxifyForm(id); }, target: "#comments_" + q }); } function toggleComment(id) { $("#toggle_" + qid(id)).nextAll().toggle(); return false; } function loadComments(id) { $("#comments_" + qid(id)).load(location.protocol + "//" + location.host + "/comments/single/" + id + "/", function() { ajaxifyForm(id); }); return false; } function loadAllComments() { $("a.commenttoggle").each(function() { var id = $(this).attr("pid"); if (id) { loadComments(id); } }); } $(document).ready(function() { function loading(id) { return " <span id=\"comments_" + id + "\" class=\"comment\">" + "<span pid=\"" + id + "\" class=\"commenttoggle\">Loading..." + "</span></span>"; } $("div.toc>p") .after("<p style='display: none;'><a onclick='return loadAllComments()'>" + "Load all comments (<b>slow</b>)</a></p>") .toggle(function() { $(this).nextAll().show("normal"); }, function() { $(this).nextAll().hide("normal"); }) .hover(function() { $(this).fadeTo("normal", 0.8); }, function() { $(this).fadeTo("normal", 0.35); }); $("p[@id]").each(function() { $(this).append(loading($(this).attr("id"))); }); $("pre[@id]").each(function() { $(this).after(loading($(this).attr("id"))); }); var chapid = $("div.preface, div.chapter, div.appendix, div.bibliography").attr("id"); $("#chapterfeed").attr("href", $("#chapterfeed").attr("href") + chapid + "/"); $.getJSON(location.protocol + "//" + location.host + "/comments/chapter/" + chapid + "/count/", function(data) { $.each(data, function(id, item) { var s = item == 1 ? "" : "s"; $("#comments_" + qid(id) + " span.commenttoggle").replaceWith( "<a class='commenttoggle' id='toggle_" + id + "' " + "pid='" + id + "' " + "onclick='return loadComments(\"" + id + "\")' " + "href='comments: show / hide'>" + item + " comment" + s + "</a>"); }); $("span.commenttoggle").each(function() { var id = $(this).attr("pid"); $(this).replaceWith("<a class='commenttoggle' id='toggle_" + id + "' " + "onclick='return loadComments(\"" + id + "\")' " + "href='comment: add'>No comments</a>"); }); }); });