aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--templates/web/fixmybarangay/report/_message_manager.html13
-rw-r--r--web/cobrands/fixmybarangay/message_manager.scss13
-rw-r--r--web/cobrands/fixmybarangay/message_manager_client.js71
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')? '&nbsp;' : 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>&ndash;</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);
}
}