diff options
-rw-r--r-- | templates/web/fixmybarangay/report/_message_manager.html | 13 | ||||
-rw-r--r-- | web/cobrands/fixmybarangay/message_manager.scss | 13 | ||||
-rw-r--r-- | web/cobrands/fixmybarangay/message_manager_client.js | 71 |
3 files changed, 70 insertions, 27 deletions
diff --git a/templates/web/fixmybarangay/report/_message_manager.html b/templates/web/fixmybarangay/report/_message_manager.html index 10f627a2e..d24f1185a 100644 --- a/templates/web/fixmybarangay/report/_message_manager.html +++ b/templates/web/fixmybarangay/report/_message_manager.html @@ -55,7 +55,10 @@ $(document).ready(function() { var $mm_message_list = $('#mm-message-list'); var mm_url = "[% c.config.MESSAGE_MANAGER_URL %]"; // from config + + [%# note that the presence of a problem id implies that this is a report view page, not a problem creation page %] var problem_id = "[% problem.id %]"; + var dummy_busy = false; var fms_username = "[% c.user.email | replace('\@.*', '') %]"; var timeout_id = 0; @@ -119,7 +122,15 @@ $(document).ready(function() { dummy_busy = false; } - message_manager.config({url_root: mm_url, want_nice_msgs: true}); + var custom_tooltips; + if (problem_id) { // this page is viewing, not creating + custom_tooltips = {tt_radio: "Select before clicking 'Copy to Update' to add this message as an update"}; + } + message_manager.config({ + url_root: mm_url, + tooltips: custom_tooltips, + want_nice_msgs: true + }); message_manager.setup_click_listener({callback:mm_selected_message}); // problem form hidden input "external_source_id": pass the MM id into FMS, if used diff --git a/web/cobrands/fixmybarangay/message_manager.scss b/web/cobrands/fixmybarangay/message_manager.scss index 7df7bc0ec..120bea4ba 100644 --- a/web/cobrands/fixmybarangay/message_manager.scss +++ b/web/cobrands/fixmybarangay/message_manager.scss @@ -105,7 +105,6 @@ p.mm-submitted-by-sms { clear: both; margin: 4px 0 0 0; padding: 0; - cursor: pointer; background-color: $color_bg_mm_list; p { background-color: inherit; @@ -151,6 +150,7 @@ p.mm-submitted-by-sms { width: 3em; float:left; } + .mm-radio-filler, input[type=radio] { display: block; float: left; @@ -160,6 +160,10 @@ p.mm-submitted-by-sms { font-weight: normal; margin: 0.1em 0 0.1em 4.5em; } + .mm-radio-filler { + margin:0; + padding:0; + } .mm-msg-action { display: none; padding: 0.2em 0.4em; @@ -172,20 +176,23 @@ p.mm-submitted-by-sms { .mm-hide { right:0px; background-color: $color_bg_btn_hide; + cursor: pointer; } .mm-info { right:1.5em; background-color: $color_bg_btn_info; + cursor: pointer; } .mm-rep { right:2.6em; background-color: $color_bg_btn_reply; + cursor: pointer; } } &.mm-archive { display: none; // archive only shown on interaction - input[type=radio] { - display: none; // archive messages can't sensible be used for creation, so hide radio + li label { + cursor: default; } } } diff --git a/web/cobrands/fixmybarangay/message_manager_client.js b/web/cobrands/fixmybarangay/message_manager_client.js index e9a5c8d6b..7b6aaba29 100644 --- a/web/cobrands/fixmybarangay/message_manager_client.js +++ b/web/cobrands/fixmybarangay/message_manager_client.js @@ -28,6 +28,13 @@ * * want_nice_msgs don't use language like "lock granted" * + * tooltips hash of tooltips: override the items you want, keys are: + * tt_hide, tt_info, tt_reply, tt_radio + * + * want_radio_btns normally MM clients show a radio button, but for archive + * messages this might be unneccessary: default is true, but + * pass in false to suppress this. + * * *_selector these are the jQuery selects that will be used to find * the respective elements: * @@ -63,7 +70,15 @@ var message_manager = (function() { var _mm_name = "Message Manager"; var _use_fancybox = true; // note: currently *must* have fancybox! var _want_nice_msgs = false; - + var _want_radio_btns = true; + + var _tooltips = { + tt_hide : "Hide message", + tt_info : "Get info", + tt_reply : "Send SMS reply", + tt_radio : "Select message before clicking on map to create report" + }; + // cached jQuery elements, populated by the (mandatory) call to config() var $message_list_element; var $status_element; @@ -82,12 +97,6 @@ var message_manager = (function() { var msg_lock_granted_ok = ["Lock granted OK", "Checking message... OK"]; var msg_lock_denied = ["", "Someone is working with that message right now!"]; - // tooltips currently hardcoded, but maybe hide if don't _want_nice_msgs? - var tooltip_hide = "Hide message"; - var tooltip_info = "Get info"; - var tooltip_reply = "Send SMS reply"; - var tooltip_radio = "Select message before clicking on map to create report"; - function get_msg(msg) { return msg[_want_nice_msgs? 1 : 0]; } @@ -127,6 +136,16 @@ var message_manager = (function() { if (typeof settings.want_nice_msgs !== 'undefined') { _want_nice_msgs = settings.want_nice_msgs; } + if (typeof settings.want_radio_btns !== 'undefined') { + _want_radio_btns = settings.want_radio_btns; + } + if (settings.tooltips) { + for (var key in settings.tooltips) { + if (settings.tooltips.hasOwnProperty(key)) { + _tooltips[key]=settings.tooltips[key]; + } + } + } } $message_list_element = $(selectors.message_list_selector); $status_element = $(selectors.status_selector); @@ -219,25 +238,26 @@ var message_manager = (function() { } }; - var extract_replies = function(replies, depth) { + var extract_replies = function(replies, depth, is_archive) { var $ul = ""; if (replies && replies.length > 0) { $ul = $('<ul class="mm-reply-thread"/>'); for (var i=0; i<replies.length; i++) { - $ul.append(get_message_li(replies[i], depth)); + $ul.append(get_message_li(replies[i], depth, is_archive)); } } return $ul; }; - var get_message_li = function(message_root, depth) { + var get_message_li = function(message_root, depth, is_archive) { var msg = message_root.Message; // or use label value var lockkeeper = message_root.Lockkeeper.username; var escaped_text = $('<div/>').text(msg.message).html(); var $p = $('<p/>'); - var $hide_button = $('<a class="mm-msg-action mm-hide" id="mm-hide-' + msg.id + '" href="#hide-form-container" title="' + tooltip_hide + '">X</a>'); - var $info_button = $('<span class="mm-msg-action mm-info" id="mm-info-' + msg.id + '" title="' + tooltip_info + '">i</span>'); - var $reply_button = $('<a class="mm-msg-action mm-rep" id="mm-rep-' + msg.id + '" href="#reply-form-container" title="' + tooltip_reply + '">reply</a>'); + var $hide_button = $('<a class="mm-msg-action mm-hide" id="mm-hide-' + msg.id + '" href="#hide-form-container" title="' + _tooltips.tt_hide + '">X</a>'); + var $info_button = $('<span class="mm-msg-action mm-info" id="mm-info-' + msg.id + '" title="' + _tooltips.tt_info + '">i</span>'); + var $reply_button = $('<a class="mm-msg-action mm-rep" id="mm-rep-' + msg.id + '" href="#reply-form-container" title="' + _tooltips.tt_reply + '">reply</a>'); + var is_radio_btn = _want_radio_btns && depth == 0 && ! is_archive; if (_use_fancybox) { $reply_button.fancybox(); $hide_button.fancybox(); @@ -245,16 +265,21 @@ var message_manager = (function() { if (depth === 0) { var tag = (!msg.tag || msg.tag === 'null')? ' ' : msg.tag; tag = $('<span class="msg-tag"/>').html(tag); - var radio = depth > 0? null : $('<input type="radio"/>').attr({ - 'id': 'mm_text_' + msg.id, - 'name': 'mm_text', - 'value': escaped_text, - 'title': tooltip_radio - }).wrap('<p/>').parent().html(); + var radio = null; + if (is_radio_btn) { + radio = $('<input type="radio"/>').attr({ + 'id': 'mm_text_' + msg.id, + 'name': 'mm_text', + 'value': escaped_text, + 'title': is_radio_btn? _tooltips.tt_radio : "" + }).wrap('<p/>').parent().html(); + } else { + radio = $("<p>–</p>").addClass('mm-radio-filler'); + } var label = $('<label />').attr({ 'class': 'msg-text', 'for': 'mm_text_' + msg.id, - 'title': tooltip_radio + 'title': is_radio_btn? _tooltips.tt_radio : "" }).text(escaped_text).wrap('<p/>').parent().html(); $p.append(tag).append(radio).append(label); } else { @@ -275,7 +300,7 @@ var message_manager = (function() { } $p.append('<div class="msg-info-box" id="msg-info-box-' + msg.id + '">' + info_text + '</div>'); if (message_root.children) { - $litem.append(extract_replies(message_root.children, depth+1)); + $litem.append(extract_replies(message_root.children, depth+1, is_archive)); } return $litem; }; @@ -303,7 +328,7 @@ var message_manager = (function() { if (archive instanceof Array) { var $arch_ul = $('<ul class="mm-root mm-archive"/>'); for(i=0; i< archive.length; i++) { - litem = get_message_li(archive[i], 0); + litem = get_message_li(archive[i], 0, true); $arch_ul.append(litem); } $output.append($arch_ul); @@ -316,7 +341,7 @@ var message_manager = (function() { $output.append('<p class="mm-empty">No messages available.</p>'); } else { for(i=0; i< messages.length; i++) { - litem = get_message_li(messages[i], 0); + litem = get_message_li(messages[i], 0, false); $ul.append(litem); } } |