function notmuchUpdatePager(idx) { var li = $("#nextthreadli"); var btn = $("#nextthread"); document.title = window.notmuchweb_threads[idx].subject; $("#pager-cur-num").html((idx+1).toString()); if (idx >= window.notmuchweb_threads.length - 1) { li.addClass("disabled"); btn.attr("href", "#"); } else { li.removeClass("disabled"); btn.attr("href", window.notmuchweb_threads[idx+1].url); btn.data("notmuch-thread-index", idx+1); } } $(document).ready(function() { $("#nextthread").on("click", function(ev) { $.pjax.click(ev, { container: $("#threadpane") , id: $(this).data("notmuch-thread-index") , timeout: 0 }); }); $(document).on("pjax:complete", function(ev, xhr, st, options) { notmuchUpdatePager(options.id); if ($(window).width() < 700) { $(".text-as-markdown a[data-toggle=tab]").click(); } }); $(document).on("pjax:popstate", function(ev) { var i = ev.state.id; // The very first page gets an id generated by jquery using getTime so // is the number of milliseconds since January 1, 1970. This will be // bigger than any id we have so detect that if (i > 1e10) i = 0; notmuchUpdatePager(i); }); $("#threadpager").on("click", ".pager-retag", function(ev) { var url = $(this).data("notmuch-url"); var thread = $("#messageThread").data("notmuch-threadid"); var retagform = $("#retag-csrf-form"); url = url.replace("\/-\/", "/" + thread + "/"); $.ajax({ type: 'POST', data: retagform.serialize(), dataType: 'json', url: url }) .done(function(data) { if ($.inArray("unread", data.add)) { $("#nextthread").click(); } }) .fail(function(xhr, err, e) { alert("Error " + err + " " + e); }); }); });