diff --git a/themes/bootstrap/public/mailbox.js b/themes/bootstrap/public/mailbox.js index e2f6b0c..8c728e5 100644 --- a/themes/bootstrap/public/mailbox.js +++ b/themes/bootstrap/public/mailbox.js @@ -4,8 +4,57 @@ var mediumDeviceWidth = 980; var messageListMargin = 275; var clipboard = null; -// onDocChange is called each time we load partials into the DOM -function onDocChange() { +// deleteMessage sends a delete request for a message +function deleteMessage(id) { + $('#message-content').empty(); + $.ajax({ + type: 'DELETE', + url: '/mailbox/' + mailbox + '/' + id, + success: reloadList + }) +} + +// flashTooltip temporarily changes the text of a tooltip +function flashTooltip(el, text) { + var prevText = $(el).attr('data-original-title'); + $(el).attr('data-original-title', text).tooltip('show'); + $(el).attr('data-original-title', prevText); +} + +// htmlView pops open another window for viewing message as HTML +function htmlView(id) { + window.open('/mailbox/' + mailbox + '/' + id + "/html", '_blank', + 'width=800,height=600,' + + 'menubar=yes,resizable=yes,scrollbars=yes,status=yes,toolbar=yes'); +} + +// loadList displays the message list for this mailbox +function loadList() { + $('#message-list').load('/mailbox/' + mailbox, onListLoaded); +} + +// messageSource pops open another window for message source +function messageSource(id) { + window.open('/mailbox/' + mailbox + '/' + id + "/source", '_blank', + 'width=800,height=600,' + + 'menubar=no,resizable=yes,scrollbars=yes,status=no,toolbar=no'); +} + +// reloadList reloads the message list for this mailbox +function reloadList() { + $('#message-list').hide(); + loadList(); +} + +// toggleMessageLink shows/hids the message link URL form +function toggleMessageLink(id) { + var url = baseURL + '/link/' + mailbox + '/' + id; + $('#link-input-control').val(url); + $('#link-row').slideToggle(); +} + +// onDocumentChange is called each time we load partials into the DOM +function onDocumentChange() { // Bootstrap tooltips $('[data-toggle="tooltip"]').tooltip() @@ -23,30 +72,22 @@ function onDocChange() { }); } -// flashTooltip temporarily changes the text of a tooltip -function flashTooltip(el, text) { - var prevText = $(el).attr('data-original-title'); - $(el).attr('data-original-title', text).tooltip('show'); - $(el).attr('data-original-title', prevText); +// onDocumentReady is called by mailbox/index.html to initialize +function onDocumentReady() { + $("#message-list").hide(); + onWindowResize(); + $(window).resize(onWindowResize); + loadList(); } -function messageLoaded(responseText, textStatus, XMLHttpRequest) { - if (textStatus == "error") { - alert("Failed to load message, server said:\n" + responseText); - return; - } - onDocChange(); - var top = $('#message-container').offset().top - navBarOffset; - $(window).scrollTop(top); -} - -function listLoaded() { - onDocChange(); +// onListLoaded is called when the message list changes +function onListLoaded() { + onDocumentChange(); $('.listEntry').click( function() { $('.listEntry').removeClass("disabled"); $(this).addClass("disabled"); - $('#message-content').load('/mailbox/' + mailbox + '/' + this.id, messageLoaded); + $('#message-content').load('/mailbox/' + mailbox + '/' + this.id, onMessageLoaded); selected = this.id; } ) @@ -57,16 +98,19 @@ function listLoaded() { } } -function loadList() { - $('#message-list').load('/mailbox/' + mailbox, listLoaded); +// onMessageLoaded is called each time a new message is shown +function onMessageLoaded(responseText, textStatus, XMLHttpRequest) { + if (textStatus == "error") { + alert("Failed to load message, server said:\n" + responseText); + return; + } + onDocumentChange(); + var top = $('#message-container').offset().top - navBarOffset; + $(window).scrollTop(top); } -function reloadList() { - $('#message-list').hide(); - loadList(); -} - -function windowResize() { +// onWindowResize handles special cases when window is resized +function onWindowResize() { if ($(window).width() > mediumDeviceWidth) { var content_height = $(window).height() - messageListMargin; $('#message-list-wrapper').height(content_height).addClass("message-list-scroll"); @@ -75,37 +119,3 @@ function windowResize() { } } -function listInit() { - $("#message-list").hide(); - windowResize(); - $(window).resize(windowResize); - loadList(); -} - -function deleteMessage(id) { - $('#message-content').empty(); - $.ajax({ - type: 'DELETE', - url: '/mailbox/' + mailbox + '/' + id, - success: reloadList - }) -} - -function htmlView(id) { - window.open('/mailbox/' + mailbox + '/' + id + "/html", '_blank', - 'width=800,height=600,' + - 'menubar=yes,resizable=yes,scrollbars=yes,status=yes,toolbar=yes'); -} - -function messageSource(id) { - window.open('/mailbox/' + mailbox + '/' + id + "/source", '_blank', - 'width=800,height=600,' + - 'menubar=no,resizable=yes,scrollbars=yes,status=no,toolbar=no'); -} - -function toggleMessageLink(id) { - var url = baseURL + '/link/' + mailbox + '/' + id; - $('#link-input-control').val(url); - $('#link-row').slideToggle(); -} - diff --git a/themes/bootstrap/templates/mailbox/index.html b/themes/bootstrap/templates/mailbox/index.html index 6fe1395..ce745a6 100644 --- a/themes/bootstrap/templates/mailbox/index.html +++ b/themes/bootstrap/templates/mailbox/index.html @@ -9,7 +9,7 @@ var mailbox = "{{.name}}"; $(document).ready(function() { $('#nav-mail').addClass("active"); - listInit(); + onDocumentReady(); }); {{end}}