diff options
Diffstat (limited to 'templates/web')
-rw-r--r-- | templates/web/fixmybarangay/report/_message_manager.html | 73 |
1 files changed, 63 insertions, 10 deletions
diff --git a/templates/web/fixmybarangay/report/_message_manager.html b/templates/web/fixmybarangay/report/_message_manager.html index 1d0d726ef..869d2d088 100644 --- a/templates/web/fixmybarangay/report/_message_manager.html +++ b/templates/web/fixmybarangay/report/_message_manager.html @@ -16,6 +16,9 @@ <ul id="message_manager" class="issue-list-a tab" style="display: none"> <li id="mm-admin-buttons"> + [% IF problem.id %] + <a style="float:left" id="mm-link-to-toggle-archive" href="#" title="show the message(s) associated with this report">show message for <b>this</b> report</a> + [% END %] <a id="mm-link-to-refresh" href="#" title="update list of messages">refresh</a> <a id="mm-link-to-admin" href="[% c.config.MESSAGE_MANAGER_URL %]" title="jump to Message Manager admin">admin</a> <a id="mm-link-to-help" href="#mm-help" title="show help information">help</a> @@ -56,11 +59,23 @@ $(document).ready(function() { var timeout_id = 0; var can_refresh = true; // disable refresh var refresh_period = 60000 * 3; // refresh messages every three minutes + var has_archive_message = false; function sanitise_id(css_id) { return css_id.replace(/\D/g, ""); } + // call this to push the auto-refresh timeout off so it's only triggered + // if there's no activity for a while + function reset_timeout() { + if (refresh_period && can_refresh) { + if (timeout_id) { + clearTimeout(timeout_id); + } + timeout_id = setTimeout(mm_refresh_messages, refresh_period); + } + } + var mm_refresh_messages = function() { $('#mm-link-to-refresh').fadeOut(); $('#available-submit').click(); @@ -70,12 +85,7 @@ $(document).ready(function() { $('#mm-status-message-container').find('p').text("Accessed Message Manager as " + data['username']); $('input[name=mm_text]').prop('checked', false); // uncheck all $('#mm-link-to-refresh').delay(2000).fadeIn(); - if (refresh_period && can_refresh) { - if (timeout_id) { - clearTimeout(timeout_id); - } - timeout_id = setTimeout(mm_refresh_messages, refresh_period); - } + reset_timeout(); } var mm_selected_message = function(data) { @@ -95,12 +105,14 @@ $(document).ready(function() { } var dummy_reply_cleanup = function(data) { + reset_timeout(); $('#reply_text').val(''); dummy_busy = false; mm_refresh_messages(); } var dummy_hide_cleanup = function(data) { + reset_timeout(); $('#reason_text').val(''); dummy_busy = false; } @@ -117,9 +129,11 @@ $(document).ready(function() { $('#available-submit').click(function(e){ e.preventDefault(); + reset_timeout(); message_manager.get_available_messages({ callback: mm_populate_list, suggest_username: fms_username, + fms_id: problem_id, anim_duration: 500 }); }); @@ -132,6 +146,7 @@ $(document).ready(function() { }); $('#mm-message-list').on('click', '.mm-info', function(e){ + reset_timeout(); message_manager.show_info(sanitise_id($(this).parent().attr('id'))); }); @@ -158,6 +173,7 @@ $(document).ready(function() { $('#hide-submit').click(function(e) { e.preventDefault(); + reset_timeout(); // TODO: pending fancybox callbacks working, force dummy_busy here // this is possibly overly cautious anyway dummy_busy = false; @@ -175,13 +191,14 @@ $(document).ready(function() { // only show on problem display page if (problem_id) { $('<input type="button" value="Copy to update"/>').attr({ - 'id': 'add_support', - 'name': 'add_support', + 'id': 'copy_to_update', + 'name': 'copy_to_update', 'class': 'green-btn' }).appendTo($('#message_manager')); } - $('#add_support').click(function(e){ + $('#copy_to_update').click(function(e){ + reset_timeout(); e.preventDefault(); $('#mm-message-list input:checked').each( function(index) { var id = $(this).attr('id'); @@ -195,7 +212,7 @@ $(document).ready(function() { }); $('#show_messages').on('click', function(e) { - $('#message_manager').toggle(); + $('#message_manager').slideToggle(1000); $('#show_messages').val( $('#show_messages').val() == 'Show Messages' ? 'Hide Messages' : 'Show Messages' ); }); @@ -204,6 +221,42 @@ $(document).ready(function() { mm_refresh_messages(); }); + // suppress fading control while archive messages are displayed, for now + $('#mm-link-to-toggle-archive').on('click', function(e) { + e.preventDefault(); + $('#mm-link-to-toggle-archive').fadeOut(); + if ($('.mm-current', $mm_message_list).is(':visible')) { + $('#copy_to_update').stop(true,true).fadeOut(); + $('#mm-link-to-refresh').stop(true,true).fadeOut(); + $('.mm-current', $mm_message_list).stop(true,true).slideUp(1000, function(){ + if($('.mm-archive', $mm_message_list).find('li').length == 0) { + message_manager.say_status("No messages found for this report,"); + } else { + message_manager.say_status("Messages for this report:"); + }; + $('.mm-archive', $mm_message_list).stop(true,true).slideDown(1000, function(){ + $('#mm-link-to-toggle-archive').html('show all available messages') + .attr('title', 'show all available messages (for adding updates)'); + $('#mm-link-to-toggle-archive').fadeIn(); + can_refresh = false; + }) + }); + } else { + $('.mm-archive', $mm_message_list).stop(true,true).slideUp(1000, function(){ + message_manager.say_status("Available messages:"); + $('.mm-current', $mm_message_list).stop(true,true).slideDown(1000, function(){ + $('#mm-link-to-toggle-archive').html("show message for <b>this</b> report") + .attr('title', 'show the original message(s) for this report'); + $('#copy_to_update').stop(true,true).fadeIn(); + $('#mm-link-to-toggle-archive').stop(true,true).fadeIn(); + $('#mm-link-to-refresh').stop(true,true).fadeIn(); + can_refresh = true; + reset_timeout(); + }) + }); + } + }); + $("a#mm-link-to-help").fancybox(); message_manager.populate_boilerplate_strings('hide-reason'); |