});
var editDisabled = zoom < 13;
- $("#edit_tab")
- .tooltip({ placement: "bottom" })
- .attr("data-bs-original-title", editDisabled ?
- I18n.t("javascripts.site.edit_disabled_tooltip") : "")
+ var editTab = $("#edit_tab");
+ editTab
// Disable the button group and also the buttons to avoid
// inconsistent behaviour when zooming
.toggleClass("disabled", editDisabled)
.find("a")
.toggleClass("disabled", editDisabled);
+ var editTooltip = bootstrap.Tooltip.getOrCreateInstance(editTab[0], { placement: "bottom" });
+ if (editDisabled) {
+ editTooltip.enable();
+ } else {
+ editTooltip.disable();
+ }
};
window.maximiseMap = function () {
};
$(document).ready(function () {
+ $("#edit_tab")
+ .attr("title", I18n.t("javascripts.site.edit_disabled_tooltip"));
+
var headerWidth = 0,
compactWidth = 0;
var addOverlay = function (layer, name, maxArea) {
var item = $("<li>")
- .tooltip({
- placement: "top"
- })
.appendTo(overlays);
+ var tooltip;
+ if (name === "notes" || name === "data") {
+ item.attr("title", I18n.t("javascripts.site.map_" + name + "_zoom_in_tooltip"));
+ tooltip = new bootstrap.Tooltip(item[0]);
+ tooltip.disable();
+ }
+
var label = $("<label>")
.attr("class", "form-check-label")
.appendTo(item);
}
$(item).attr("class", disabled ? "disabled" : "");
- item.attr("data-bs-original-title", disabled ?
- I18n.t("javascripts.site.map_" + name + "_zoom_in_tooltip") : "");
+ if (tooltip) {
+ if (disabled) {
+ tooltip.enable();
+ } else {
+ tooltip.disable();
+ }
+ }
});
};
tooltip.assert_no_text "Zoom in"
end
- test "tooltip shows for query button when zoomed out" do
- visit "/#map=10/0/0"
+ [
+ "#edit_tab",
+ ".control-note .control-button",
+ ".control-query .control-button"
+ ].each do |selector|
+ test "tooltips on low zoom levels for disabled control '#{selector}'" do
+ visit "/#map=10/0/0"
- assert_no_selector ".tooltip"
- button = find ".control-query .control-button"
- button.hover
- tooltip = find ".tooltip"
- tooltip.assert_text "Zoom in to query features"
+ assert_no_selector ".tooltip"
+ find(selector).hover
+ assert_selector ".tooltip", :text => "Zoom in"
+ end
+
+ test "no zoom-in tooltips on high zoom levels, then tooltips appear after zoom out for control '#{selector}'" do
+ visit "/#map=14/0/0"
+
+ assert_no_selector ".tooltip"
+ find(selector).hover
+ assert_no_selector ".tooltip", :text => "Zoom in"
+ find("h1").hover # un-hover original element
+
+ visit "/#map=10/0/0"
+ find(selector).hover
+ assert_selector ".tooltip", :text => "Zoom in"
+ end
end
- test "tooltip shows for edit button when zoomed out" do
- visit "/#map=11/0/0"
+ test "notes layer tooltip appears on zoom out" do
+ visit "/#map=9/40/-4" # depends on zoom levels where notes are allowed
- assert_no_selector ".tooltip"
- button = find "#edit_tab"
- button.hover
- tooltip = find ".tooltip"
- tooltip.assert_text "Zoom in to edit the map"
+ find(".control-layers .control-button").click
+ li = find(".layers-ui .overlay-layers li:first-child")
+ li.not_matches_css? ".disabled"
+ li.hover # try to trigger disabled tooltip
+ zoomout = find(".control-button.zoomout")
+ zoomout.hover # un-hover the tooltip that's being tested
+ zoomout.click
+ li.matches_css? ".disabled"
+ li.hover
+ assert_selector ".tooltip", :text => "Zoom in"
end
end