aboutsummaryrefslogtreecommitdiffstats
path: root/templates
diff options
context:
space:
mode:
Diffstat (limited to 'templates')
-rw-r--r--templates/web/fixmybarangay/around/tabbed_lists.html68
-rw-r--r--templates/web/fixmybarangay/header.html4
-rw-r--r--templates/web/fixmybarangay/report/_message_manager.html137
3 files changed, 113 insertions, 96 deletions
diff --git a/templates/web/fixmybarangay/around/tabbed_lists.html b/templates/web/fixmybarangay/around/tabbed_lists.html
index 77ca84ee4..14461628c 100644
--- a/templates/web/fixmybarangay/around/tabbed_lists.html
+++ b/templates/web/fixmybarangay/around/tabbed_lists.html
@@ -14,71 +14,5 @@ IF allow_creation %]
</ul>
[% IF allow_creation %]
-<ul id="message_manager" class="issue-list-a tab">
- <li id="message-control">
- <div id="mm-username-container">username:&nbsp;<span id="mm-received-username"></span></div>
- <div id="mm-status-message-container">
- <div id="mm-status-message"></div>
- </div>
- <div id="mm-login-container">
- <div class="input text">
- <label for="mm-htauth-username">MM username</label>
- <input name="mm-htauth-username" id="mm-htauth-username" type="text"/>
- </div>
- <div class="input password">
- <label for="mm-htauth-password">Password</label>
- <input name="mm-htauth-password" id="mm-htauth-password" type="password"/>
- </div>
- <div class="submit">
- <input id="available-submit" type="submit" value="Get available messages"/>
- </div>
- </div>
- </li>
- <li>
- <div id="mm-message-list" style="min-height:1em;"></div>
- </li>
-</ul>
-
-<script type="text/javascript">
-
-$(document).ready(function() {
-
- var mm_url = "[% c.config.MESSAGE_MANAGER_URL %]"; // from config
-
- var mm_populate_list = function(data) {
- $('#mm-status-message-container').text("Accessed message server as " + data['username']);
- $('input[name=mm_text]').prop('checked', false); // uncheck all
- }
-
- var mm_selected_message = function(data) {
- var msg_text = "";
- var service_id = "";
- if (data['success']) {
- // msg_text = $('#form_detail').val( $('input[name=mm_text]:checked').val() ); # == message data
- msg_text = data['data']['Message']['message'];
- service_id = data['data']['Message']['id'];
- } else {
- $('input[name=mm_text]').prop('checked', false); // uncheck all
- }
- $('#form_detail').val(msg_text);
- $('#external_source_id').val(service_id);
- }
-
- message_manager.config({url_root: mm_url});
- message_manager.setup_click_listener({callback:mm_selected_message});
-
- // problem form hidden input "external_source_id": pass the MM id into FMS, if used
- $('<input type="hidden"/>').attr({
- 'id': 'external_source_id',
- 'name': 'external_source_id',
- }).appendTo($('#problem_form'));
-
- $('#available-submit').click(function(e){
- e.preventDefault();
- message_manager.get_available_messages({callback:mm_populate_list});
- });
- $('#available-submit').click();
-});
-
-</script>
+ [% TRY %][% INCLUDE 'report/_message_manager.html' %][% CATCH file %][% END %]
[% END %]
diff --git a/templates/web/fixmybarangay/header.html b/templates/web/fixmybarangay/header.html
index 2b2f031e2..c3ddd154e 100644
--- a/templates/web/fixmybarangay/header.html
+++ b/templates/web/fixmybarangay/header.html
@@ -25,6 +25,10 @@
[% allow_creation = !c.cobrand.only_authed_can_create || (c.user && c.user.from_council); %]
[% IF allow_creation %]
+
+ <link rel="stylesheet" href="[% version('/js/fancybox/jquery.fancybox-1.3.4.css') %]">
+ <script src="[% version('/js/fancybox/jquery.fancybox-1.3.4.pack.js') %]" charset="utf-8"></script>
+
<script src="[% version('/cobrands/fixmybarangay/message_manager_client.js') %]" charset="utf-8"></script>
<script>
$(document).ready(function() {
diff --git a/templates/web/fixmybarangay/report/_message_manager.html b/templates/web/fixmybarangay/report/_message_manager.html
index 2697e156c..9f3692f17 100644
--- a/templates/web/fixmybarangay/report/_message_manager.html
+++ b/templates/web/fixmybarangay/report/_message_manager.html
@@ -1,6 +1,9 @@
[% IF c.user && c.user.from_council %]
-<input type="button" class="green-btn" value="Show Messages" id="show_messages">
+[% IF problem.id %]
+ <input type="button" class="green-btn" value="Show Messages" id="show_messages">
+[% END %]
+
<ul id="message_manager" class="issue-list-a tab" style="display: none">
<li id="message-control">
<div id="mm-username-container">username:&nbsp;<span id="mm-received-username"></span></div>
@@ -8,16 +11,16 @@
<div id="mm-status-message"></div>
</div>
<div id="mm-login-container">
- <div class="input text">
- <label for="mm-htauth-username">MM username</label>
+ <div>
+ <label for="mm-htauth-username">Username:</label>
<input name="mm-htauth-username" id="mm-htauth-username" type="text"/>
</div>
- <div class="input password">
- <label for="mm-htauth-password">Password</label>
+ <div>
+ <label for="mm-htauth-password">Password:</label>
<input name="mm-htauth-password" id="mm-htauth-password" type="password"/>
</div>
<div class="submit">
- <input id="available-submit" type="submit" value="Get available messages"/>
+ <input id="available-submit" type="submit" value="Get available messages" class="green-btn"/>
</div>
</div>
</li>
@@ -25,15 +28,35 @@
<div id="mm-message-list" style="min-height:1em;"></div>
</li>
</ul>
+<div style="display:none">
+ <div id="reply-form-container">
+ <form action="/" id="reply-form" onsubmit="event.returnValue = false; return false;" method="post" accept-charset="utf-8">
+ <input type="hidden" name="message_id" id="reply_to_msg_id"/>
+ <div>
+ <label for="reply_text">Reply text:</label>
+ <textarea name="reply_text" id="reply_text"></textarea>
+ </div>
+ <div class="submit">
+ <input id="reply-submit" type="submit" value="Send Reply" class="green-btn"/>
+ </div>
+ </form>
+ </div>
+</div>
<script type="text/javascript">
$(document).ready(function() {
var mm_url = "[% c.config.MESSAGE_MANAGER_URL %]"; // from config
-
+ var problem_id = "[% problem.id %]";
+ var dummy_busy = false;
+
+ function sanitise_id(css_id) {
+ return css_id.replace(/\D/g, "");
+ }
+
var mm_populate_list = function(data) {
- $('#mm-status-message-container').text("Accessed message server as " + data['username']);
+ $('#mm-status-message-container').text("Accessed Message Manager as " + data['username']);
$('input[name=mm_text]').prop('checked', false); // uncheck all
}
@@ -50,6 +73,15 @@ $(document).ready(function() {
$('#form_detail').val(msg_text);
$('#external_source_id').val(service_id);
}
+
+ var dummy_reply_cleanup = function(data) {
+ $('#reply_text').val('');
+ dummy_busy = false;
+ }
+
+ var dummy_hide_cleanup = function(data) {
+ dummy_busy = false;
+ }
message_manager.config({url_root: mm_url});
message_manager.setup_click_listener({callback:mm_selected_message});
@@ -66,29 +98,76 @@ $(document).ready(function() {
});
$('#available-submit').click();
- $('<input type="button" value="Copy to update"/>').attr({
- 'id': 'add_support',
- 'name': 'add_support',
- 'class': 'green-btn'
- }).appendTo($('#message_manager'));
+ $('#hide-button').click(function() {
+ if ($('#message_id').val()) {
+ message_manager.hide(
+ $('#message_id').val(),
+ {callback:dummy_hide_cleanup});
+ }
+ });
+
+ $('#mm-message-list').on('mouseover', 'li.mm-msg', function(e){
+ e.stopPropagation(); // because replies are nested
+ $('.mm-msg-action', $('#mm-message-list')).stop().fadeOut(200);
+ $(this).find('> .mm-msg-action').stop().show();
+ console.log("clicked on: " + $(this).attr('id'));
+ });
+
+ $('#mm-message-list').on('click', '.mm-hide', function(e){
+ var want_hide =
+ confirm('Are you sure you want to delete the following message?\n\n"'
+ + $('p', $(this).parent()).first().text() + '"\n');
+ if (want_hide) {
+ message_manager.hide(
+ sanitise_id($(this).parent().attr('id')),
+ {callback:dummy_hide_cleanup});
+ }
+ });
+
+ $('#mm-message-list').on('click', '.mm-rep', function(e){
+ console.log("call message_manager.reply(" + $(this).parent().attr('id') + ", reply_text)");
+ });
+
+ $('#reply-submit').click(function(e) {
+ e.preventDefault();
+ if (! dummy_busy) {
+ dummy_busy = true;
+ console.log("sending reply to: " + $('#reply_to_msg_id').val());
+ message_manager.reply(
+ $('#reply_to_msg_id').val(),
+ $('#reply_text').val(),
+ {callback:dummy_reply_cleanup});
+ }
+ });
+
+ $("a#reply").fancybox({onClosed: function(){dummy_busy=false;}});
+
+ // only show on problem display page
+ if (problem_id) {
+ $('<input type="button" value="Copy to update"/>').attr({
+ 'id': 'add_support',
+ 'name': 'add_support',
+ 'class': 'green-btn'
+ }).appendTo($('#message_manager'));
+ }
$('#add_support').click(function(e){
- e.preventDefault();
- $('#mm-message-list input:checked').each( function(index) {
- var id = $(this).attr('id');
- id = id.replace('mm_text_','');
- $('#external_source_id').val(id);
- $('#form_update').val( $(this).val() );
- $('#form_update_form').on('submit', function(e) {
- message_manager.assign_fms_id( $('#external_source_id').val(), [% problem.id %], { 'is_async': false } );
- });
- });
- });
-
- $('#show_messages').on('click', function(e) {
- $('#message_manager').toggle();
- $('#show_messages').val( $('#show_messages').val() == 'Show Messages' ? 'Hide Messages' : 'Show Messages' );
- } );
+ e.preventDefault();
+ $('#mm-message-list input:checked').each( function(index) {
+ var id = $(this).attr('id');
+ id = id.replace('mm_text_','');
+ $('#external_source_id').val(id);
+ $('#form_update').val( $(this).val() );
+ $('#form_update_form').on('submit', function(e) {
+ message_manager.assign_fms_id( $('#external_source_id').val(), problem_id, { 'is_async': false } );
+ });
+ });
+ });
+
+ $('#show_messages').on('click', function(e) {
+ $('#message_manager').toggle();
+ $('#show_messages').val( $('#show_messages').val() == 'Show Messages' ? 'Hide Messages' : 'Show Messages' );
+ });
});
</script>